Django admin list_filter дубликат - PullRequest
2 голосов
/ 13 марта 2012

В любом случае, чтобы использовать красивую функцию Django "list_filter" в других представлениях?

1 Ответ

1 голос
/ 13 марта 2012

Интересное внешнее приложение, которое позволяет вам настраивать фильтры: 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, так что это действительно весело.

...