django-filter

A generic system for filtering Django QuerySets based on user selections

  • Owner: carltongibson/django-filter
  • Platform:
  • License:: Other
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Django Filter

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

Full documentation on read the docs_.

.. image:: https://dev.azure.com/noumenal/Django%20Filter/_apis/build/status/Django%20Filter-CI
:target: https://dev.azure.com/noumenal/Django%20Filter/_build/latest?definitionId=3

.. image:: https://travis-ci.org/carltongibson/django-filter.svg?branch=master
:target: https://travis-ci.org/carltongibson/django-filter

.. image:: https://codecov.io/gh/carltongibson/django-filter/branch/develop/graph/badge.svg
:target: https://codecov.io/gh/carltongibson/django-filter

.. image:: https://badge.fury.io/py/django-filter.svg
:target: http://badge.fury.io/py/django-filter

Requirements

  • Python: 3.5, 3.6, 3.7, 3.8
  • Django: 1.11, 2.0, 2.1, 2.2, 3.0
  • DRF: 3.10+

From Version 2.0 Django Filter is Python 3 only.
If you need to support Python 2.7 use the version 1.1 release.

Installation

Install using pip:

.. code-block:: sh

pip install django-filter

Then add 'django_filters' to your INSTALLED_APPS.

.. code-block:: python

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:

.. code-block:: python

import django_filters

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

And then in your view you could do:

.. code-block:: python

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.

.. code-block:: python

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_.

.. _read the docs: https://django-filter.readthedocs.io/en/master/
.. _mailing list: http://groups.google.com/group/django-filter
.. _DRF integration docs: https://django-filter.readthedocs.io/en/master/guide/rest_framework.html

Main metrics

Overview
Name With Ownercarltongibson/django-filter
Primary LanguagePython
Program languagePython (Language Count: 3)
Platform
License:Other
所有者活动
Created At2009-01-30 00:35:57
Pushed At2025-03-26 13:37:27
Last Commit At
Release Count49
Last Release Name25.1 (Posted on 2025-02-14 17:31:42)
First Release Name0.1.0 (Posted on )
用户参与
Stargazers Count4.6k
Watchers Count65
Fork Count771
Commits Count1.3k
Has Issues Enabled
Issues Count842
Issue Open Count55
Pull Requests Count518
Pull Requests Open Count20
Pull Requests Close Count227
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private