Интересное внешнее приложение, которое позволяет вам настраивать фильтры: django-filter .На самом деле это намного мощнее, чем django admin list_filter.
Django-фильтр - это повторно используемое приложение Django, позволяющее пользователям динамически фильтровать набор запросов.Требуется Python 2.4 или выше.Инструкции по использованию и установке см. В каталоге docs.
Django-фильтр можно использовать для создания интерфейсов, аналогичных интерфейсу list_filter
администратора Django.Он имеет API, очень похожий на Django ModelForms
.Например, если у вас была модель Продукта, вы могли бы иметь для нее набор фильтров с кодом:
import django_filters
class ProductFilterSet(django_filters.FilterSet):
class Meta:
model = Product
fields = ['name', 'price', 'manufacturer']
И тогда, на ваш взгляд, вы могли бы сделать:
def product_list(request):
filterset = ProductFilterSet(request.GET or None)
return render_to_response('product/product_list.html',
{'filterset': filterset})
См. Каталог docs для получения дополнительной информации.
За кулисами действительно хороший API, так что это действительно весело.