Filters¶
Filter list views with sidebar filters for text, boolean, relation, and enum fields.
Overview¶
Filters appear in the sidebar of list views, allowing users to narrow down results. FastAPI Admin Kit includes four built-in filter types and a registry for custom filters.
Built-in Filters¶
TextFilter¶
Text/substring matching:
from fastapi_admin_kit.filters import TextFilter
@admin.register(Product)
class ProductAdmin(ModelAdmin):
list_filter = ["name", "description"]
BooleanFilter¶
True/false toggle:
RelationFilter¶
Filter by related model:
EnumFilter¶
Filter by enum choices:
from sqlalchemy import Enum
class Product(Base):
status = Column(Enum("draft", "published", "archived"))
@admin.register(Product)
class ProductAdmin(ModelAdmin):
list_filter = ["status"]
Configuration¶
Basic Usage¶
@admin.register(Product)
class ProductAdmin(ModelAdmin):
list_filter = ["is_active", "category", "status"]
Horizontal Layout¶
Display filters horizontally instead of vertically:
@admin.register(Product)
class ProductAdmin(ModelAdmin):
list_filter = ["is_active", "category"]
list_filter_horizontal = True
Per-Filter Options¶
Customize individual filter UI:
@admin.register(Product)
class ProductAdmin(ModelAdmin):
list_filter = ["is_active", "category"]
list_filter_options = {
"is_active": {"label": "Active Only"},
"category": {"label": "Product Category"},
}
Filter Registry¶
Register custom filter types globally:
from fastapi_admin_kit.filters import FilterRegistry
class DateRangeFilter(Filter):
"""Custom date range filter"""
...
FilterRegistry.register("date_range", DateRangeFilter)
Query Behavior¶
Filters are applied as query parameters:
Multiple filters are AND'd together.
Next Steps¶
- Model Registration — Configure list filters
- Widgets & Forms — Form widgets