В любом случае, использовать приятную функцию Django «list_filter» в других представлениях?
Django admin list_filter дубликат
Ответы (1)
Интересным внешним приложением, позволяющим настраивать фильтры, является django-filter. На самом деле это намного мощнее, чем django admin list_filter.
Django-filter — это многоразовое приложение Django, позволяющее пользователям динамически фильтровать наборы запросов. Для этого требуется Python 2.4 или выше. Инструкции по использованию и установке можно найти в каталоге документации.
Django-filter можно использовать для создания интерфейсов, подобных интерфейсу администратора Django
list_filter
. Его API очень похож наModelForms
Django. Например, если у вас есть модель продукта, у вас может быть набор фильтров для нее с кодом:
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, так что это действительно очень весело.