Skip to main content

Django-filter is a reusable Django application for allowing users to filter querysets dynamically.

Project description

Django-filter is a reusable Django application allowing users to declaratively add dynamic QuerySet filtering from URL parameters.

Full documentation on read the docs.

https://travis-ci.org/carltongibson/django-filter.svg?branch=master https://codecov.io/gh/carltongibson/django-filter/branch/develop/graph/badge.svg https://badge.fury.io/py/django-filter.svg

Requirements

  • Python: 2.7, 3.6

  • Django: 1.11

  • DRF: 3.7, 3.8

Django filter EX is a fork from Django filter 1.1.0 witch contains a small patch to improve performance of the default filterset on chained filters. It passes all the tests and works for my use-case.

Installation

Install using pip:

pip install django-filter

Then add 'django_filters' to your INSTALLED_APPS.

INSTALLED_APPS = [
    ...
    'django_filters',
]

Usage

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 ProductFilter(django_filters.FilterSet):
    class Meta:
        model = Product
        fields = ['name', 'price', 'manufacturer']

And then in your view you could do:

def product_list(request):
    filter = ProductFilter(request.GET, queryset=Product.objects.all())
    return render(request, 'my_app/template.html', {'filter': filter})

Usage with Django REST Framework

Django-filter provides a custom FilterSet and filter backend for use with Django REST Framework.

To use this adjust your import to use django_filters.rest_framework.FilterSet.

from django_filters import rest_framework as filters

class ProductFilter(filters.FilterSet):
    class Meta:
        model = Product
        fields = ('category', 'in_stock')

For more details see the DRF integration docs.

Support

If you have questions about usage or development you can join the mailing list.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-filter-ex-1.2.0.tar.gz (110.9 kB view details)

Uploaded Source

Built Distribution

django_filter_ex-1.2.0-py2.py3-none-any.whl (44.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-filter-ex-1.2.0.tar.gz.

File metadata

  • Download URL: django-filter-ex-1.2.0.tar.gz
  • Upload date:
  • Size: 110.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.2 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/2.7.15rc1

File hashes

Hashes for django-filter-ex-1.2.0.tar.gz
Algorithm Hash digest
SHA256 6e609ec5ac145f2ed6687921840cb65c34d1016e7adf5d2c7e17ec758d50cff6
MD5 f2da787d22ef487552e4f20e33315708
BLAKE2b-256 7cd152a84272736a209a28a6aade7ab76a2d67ef396d782500ee062f78ec11aa

See more details on using hashes here.

File details

Details for the file django_filter_ex-1.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: django_filter_ex-1.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 44.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.2 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/2.7.15rc1

File hashes

Hashes for django_filter_ex-1.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0600025783c4ae0d2d40d641253527378c09a54627bb839a5684d05fbe44222d
MD5 47682e40ad1586a92de3f548af47676b
BLAKE2b-256 a2a7fed89619ba3f6fc040d83286eff4c998fad3d963f2e2a1e335c82b4090fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page