Django admin search filter

PyPI - Version

Provides special type of django-admin list filter -- search box with free user input allowed.

Some cases when you need such functionality:

  • You have a regular search box for general search (multilpe fields taken into account), but you sometimes need to search by a specific field.
  • You have a regular search box for flexible substring search, while sometimes you need to search by exact match. At the same time number of unique values for this field is too big to display them as choices filter (although in this particular case auto-complete could be a better option)

The solution provided by this package is you place special (configurable) search input as a list filter.

Idea is taken from this Medium article: https://hakibenita.medium.com/how-to-add-a-text-filter-to-django-admin-5d1db93772d8

Usage

# admin.py

from django_admin_search_filter import get_exact_equals_input_filter, get_icontains_input_filter

...

class SomeModelAdmin(...):
    ...
    list_filter = (
        ...

        get_icontains_input_filter(title_='name', attrs='name', ),  # Substring search, one field
        get_icontains_input_filter(title_='(alt)name', attrs=('name', 'alt_name') ), # Substring search, several fields

        get_exact_equals_input_filter(title_='ID of transaction', attrs='transaction_id', ),  # Exact search, one field
        get_exact_equals_input_filter('ID of transaction/sender/reciever',  # Exact search, several field
                                attrs=('transaction_id', 'sender_id', 'reciever_id' ))

    )

Will result in the following UI:

Alternative text

Installation

  1. pip install django-admin-search-filter
  2. Add "django_admin_search_filter" to django's INSTALLED_APPS (to allow template to be loaded)
  3. Ensure APP_DIRS set to True in templates configuration

Requirements

  • Python 3
  • Django >= 2.2

Licence

MIT

Authors

django_admin_search_filter was written by Mikhail Koipish.