Django admin list_filter дубликат

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


person JohnnyCash    schedule 13.03.2012    source источник


Ответы (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, так что это действительно очень весело.

person jpic    schedule 13.03.2012
comment
на самом деле это кажется отличным решением! Я собираюсь попробовать это. Благодарность! - person JohnnyCash; 13.03.2012