Introduction
Django Unfold provides a comprehensive filtering system that extends Django’s built-in admin filters with modern, interactive UI components. The filters are designed to improve the user experience when working with large datasets in the admin interface.All filters are located in
unfold.contrib.filters.admin and extend Django’s native filter classes while adding enhanced functionality and styling.Available Filter Types
Unfold offers seven categories of filters, each optimized for specific data types and use cases:Dropdown Filters
Single and multiple selection dropdowns for choices and related fields
Autocomplete Filters
Search-enabled filters for large datasets with AJAX-powered autocomplete
Numeric Filters
Range, slider, and single value filters for numeric fields
Date/Time Filters
Date and datetime range pickers with intuitive calendar UI
Text Filters
Text search filters with case-insensitive matching
Checkbox & Radio
Multiple and single selection filters using checkboxes and radio buttons
Installation
Before using filters, add the filters app to your Django settings:settings.py
Basic Usage
Filters are used in thelist_filter attribute of your ModelAdmin classes. Here’s a basic example:
admin.py
Filter Features
Faceted Counts
When Django’s
show_facets is enabled, filters automatically display the count of items for each option.admin.py
Custom Templates
Each filter type uses a specific template that can be overridden:- Field filters:
unfold/filters/filters_field.html - Numeric range:
unfold/filters/filters_numeric_range.html - Numeric slider:
unfold/filters/filters_numeric_slider.html - Numeric single:
unfold/filters/filters_numeric_single.html - Date range:
unfold/filters/filters_date_range.html - Datetime range:
unfold/filters/filters_datetime_range.html
Form Classes
Filters use dedicated form classes for rendering:DropdownForm- Standard dropdown selectAutocompleteDropdownForm- AJAX-enabled autocompleteCheckboxForm- Multiple checkboxesRadioForm/HorizontalRadioForm- Radio buttonsSearchForm- Text input with searchSingleNumericForm- Single number inputRangeNumericForm- From/to number inputsSliderNumericForm- Interactive range sliderRangeDateForm- Date range pickerRangeDateTimeForm- Datetime range picker
Migration from Django Filters
Upgrading from standard Django admin filters
Upgrading from standard Django admin filters
Unfold filters are designed as drop-in replacements for Django’s built-in filters:
Simply import from
| Django Filter | Unfold Replacement |
|---|---|
SimpleListFilter | DropdownFilter, RadioFilter, or CheckboxFilter |
ChoicesFieldListFilter | ChoicesDropdownFilter or ChoicesRadioFilter |
RelatedFieldListFilter | RelatedDropdownFilter or RelatedCheckboxFilter |
BooleanFieldListFilter | BooleanRadioFilter |
AllValuesFieldListFilter | AllValuesCheckboxFilter |
unfold.contrib.filters.admin instead of django.contrib.admin.Performance Considerations
Next Steps
Explore each filter type in detail:Dropdown Filters
Learn about single and multiple selection dropdowns
View Dropdown Filters →
Autocomplete Filters
Implement search-enabled filters for large datasets
View Autocomplete Filters →
Specialized Filters
Explore numeric, date/time, text, and choice filters
View All Filter Types →