thomst/django-more-admin-filters

Django-more-admin-filters is a collection of django admin filters with a focus on filters using dropdown widgets, multiple choice filters and filters working with annotated attributes.

Welcome to django-more-admin-filters

Run tests for django-more-admin-filters coveralls badge python: 3.7, 3.8, 3.9, 3.10, 3.11 django: 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0, 5.1

Note If you are looking for a generic way of building and applying complex filters with a dynamic form right in the django admin backend, please checkout django-searchkit.

Description

Django-more-admin-filters is a collection of Django admin filters with a focus on filters using dropdown widgets, multiple choice filters and filters working with annotated attributes.

Installation

Install from pypi.org:

pip install django-more-admin-filters

Add more_admin_filters to your installed apps:

INSTALLED_APPS = [
    'more_admin_filters',
    ...
]

Use the filter classes with your ModelAdmin:

from more_admin_filters import MultiSelectDropdownFilter

class MyModelAdmin(admin.ModelAdmin):
    ...
    list_filter = [
        ('myfield', MultiSelectDropdownFilter),
        ...
    ]

Since the ModelAdmin routine to initialize the list filters doesn't work with annotated attributes, the usage for an annotation filter is a little bit special. The filter class needs to be equipped with the attribute's name:

MyModelAdmin(admin.ModelAdmin):
    list_filter = [
        BooleanAnnotationFilter.init('my_annotated_attribute'),
        ...
    ]

Filter classes

  • DropdownFilter Dropdown filter for all kinds of fields.
  • ChoicesDropdownFilter Dropdown filter for fields using choices.
  • RelatedDropdownFilter Dropdown filter for relation fields.
  • RelatedOnlyDropdownFilter Dropdown filter for relation fields using limit_choices_to.
  • MultiSelectFilter Multi select filter for all kinds of fields.
  • MultiSelectRelatedFilter Multi select filter for relation fields.
  • MultiSelectRelatedOnlyFilter Multi select filter for related fields with choices limited to the objects involved in that relation.
  • MultiSelectDropdownFilter Multi select dropdown filter for all kinds of fields.
  • MultiSelectRelatedDropdownFilter Multi select dropdown filter for relation fields.
  • MultiSelectRelatedOnlyDropdownFilter Multi select dropdown filter for relation fields with choices limited to the objects involved in that relation.
  • BooleanAnnotationFilter Filter for annotated boolean attributes.

Note More kinds of annotation filters will be added in future versions.

Stars
54
100.00% more than last month
Forks
16
Open Issues
11