JohnnyCash
JohnnyCash

Reputation: 1261

Django admin list_filter duplicate

Anyway to use Django's nice "list_filter" feature in other views?

Upvotes: 2

Views: 503

Answers (1)

jpic
jpic

Reputation: 33420

An interresting external app that allows you to configure filters is django-filter. Actually it is way more powerful than django admin list_filter.

Django-filter is a reusable Django application for allowing users to filter queryset dynamically. It requires Python 2.4 or higher. For usage and installation instructions consult the docs directory.

Django-filter can be used for generating interfaces similar to the Django admin's list_filter interface. It has an API very similar to Django's ModelForms. For example if you had a Product model you could have a filterset for it with the code:

import django_filters

class ProductFilterSet(django_filters.FilterSet):
    class Meta:
        model = Product
        fields = ['name', 'price', 'manufacturer']

And then in your view you could do:

def product_list(request):
    filterset = ProductFilterSet(request.GET or None)
    return render_to_response('product/product_list.html',
        {'filterset': filterset})

See the docs directory for more information.

There is a really nice API behind the scenes so it's really lots of fun.

Upvotes: 1

Related Questions