Package: django-alphafilter
Django AlphaFilter was designed to work like Django’s defaultdate_hierarchyadmin filter. It puts an clickable alphabet in the same location as the date hierarchy - at the top of the results list.Changes in 1.0* Only supports Django 1.9, 1.10 and 1.11
* Supports Python 2.7 and 3.6
* Added Tox test configurationChanges in 0.7:Added astrip_paramsparameter to the template tag to strip out external query parameters.Django 1.5 compatible.Fall back to previous method of retrieving letters in Django 1.4, due to bug in Django’s aggregation.Fixed the encoding of “&” in the urls.Addedunfiltered_querysetto the context (Thanks to Ales Zabala Alava:https://github.com/shagi)Changes in 0.6:Switched to Django querysets to retrieve letters. (Thanks to Ales Zabala Alava:https://github.com/shagi)Django 1.4 compatibleChanges in 0.5:Added a new template tag to render the alphabet filter in a normal template using a queryset and field and optionally specified template.Changes in 0.4:Added the ability to specify a 3rd-party application to apply the alphabet filter without having to modify that code (e.g.django.contrib.auth). TheALPHAFILTER_ADMIN_FIELDSsetting is used for this.Now includes documentation!Changes in 0.3:TheModelAdminclass can now specify its ownDEFAULT_ALPHABETto use instead of the global setting.DEFAULT_ALPHABETcan now be a callableInstallationThe easiest method is to usepippip install django-alphafilterIf you download the source, you can install it by running thesetup.pyscript:cd /path/to/django-alphafilter/
python setup.py installAdd'alphafilter'to your project’ssettings.pyfile, so Django will find the templates and template tag.Default AlphabetThe default alphabet is the list of characters displayed in the admin even if there is no data for that character. As there is data, the letters of the alphabet are enabled. Any characters not in the default alphabet, but that exist in the data, are added dynamically.Due to issues regarding devising the proper alphabet by language, the default alphabet is a setting namedDEFAULT_ALPHABET. The default setting is the ASCII alphabet and digits. You can set theDEFAULT_ALPHABETto a string, list, tuple or callable.If you only what the ASCII characters, no digits:DEFAULT_ALPHABET = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'For the German alphabet:DEFAULT_ALPHABET = u'0123456789A\xc4BCDEFGHIJKLMNO\xd6PQRS\xdfTU\xdcVWXYZ'For the Icelandic alphabet:DEFAULT_ALPHABET = u'0123456789A\xc1BD\xd0E\xc9FGHI\xcdJKLMNO\xd3PRSTU\xdaVXY\xdd\xde\xd6'You can override theDEFAULT_ALPHABETon a model-by-model basis by adding aDEFAULT_ALPHABETattribute to yourModelAdminclass like so:class TestNameAdmin(admin.ModelAdmin):
    model = TestName
    alphabet_filter = 'sorted_name'

    # A blank string only shows the characters in the database
    DEFAULT_ALPHABET = u''The ordering of the alphabet will not stay the same as entered, it is sorted through Python’s list sort method.Using Alphabet Filter on a ModelIn the model’sadmin.pysetalphabet_filterto the name of a character field. For example:alphabet_filter = 'name'You also have to create a template for the model (or application) that will override the admin’schange_list.htmltemplate.Within your project’s template directory, you need to create anadmindirectory, and a directory with the name of the application, and optionally the name of the model. For example, if you were adding the filter on theTagmodel of an application namedcooltags, the directory structure would look like:MyProject
    templates
        admin
            cooltags
                tagCreate a document namedchange_list.htmland put it in either the application (templates/admin/cooltags) directory, to have it work for every model within that application or put it in the model directory (templates/admin/cooltags/tag) to have it work only for that model.The change_list.html document should only contain one line:{% extends "alphafilter/change_list.html" %}NoteYoucannotplace this template in theadmindirectory, as it leads to an infinite loop of inheritance.