• Stars
    star
    4,436
  • Rank 9,658 (Top 0.2 %)
  • Language
    Python
  • License
    Other
  • Created almost 16 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A generic system for filtering Django QuerySets based on user selections

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.

Versioning and stability policy

Django-Filter is a mature and stable package. It uses a two-part CalVer versioning scheme, such as 21.1. The first number is the year. The second is the release number within that year.

On an on-going basis, Django-Filter aims to support all current Django versions, the matching current Python versions, and the latest version of Django REST Framework.

Please see:

Support for Python and Django versions will be dropped when they reach end-of-life. Support for Python versions will dropped when they reach end-of-life, even when still supported by a current version of Django.

Other breaking changes are rare. Where required, every effort will be made to apply a "Year plus two" deprecation period. For example, a change initially introduced in 23.x would offer a fallback where feasible and finally be removed in 25.1. Where fallbacks are not feasible, breaking changes without deprecation will be called out in the release notes.

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 need help you can start a discussion. For commercial support, please contact Carlton Gibson via his website.

More Repositories

1

neapolitan

Quick CRUD views for Django
Python
480
star
2

django-template-partials

Reusable named inline partials for the Django Template Language.
Python
443
star
3

django-unique-user-email

Enable login-by-email with the default User model for your Django project by making auth.User.email unique.
Python
116
star
4

django-sphinx-view

Django Powered Dynamic Sphinx Docs.
Python
51
star
5

djangocon-sprints

Notes for "Getting started contributing to Django" sprints workshop.
28
star
6

Noumenal-PHP-Library

PHP Source and General Resources
PHP
20
star
7

azure-functions-wsgi-adapter

Adapter to run your WSGI application in Azure Functions. ๐ŸŽ‰ NO LONGER NEEDED โ€”ย Azure Functions Python SDK DOES THIS ITSELF NOW.
Python
9
star
8

notes

Being a (Django) open source maintainer discussion group, and my notes on misc.
Python
6
star
9

JavaScript

General resources
Python
5
star
10

django-staticsite

Django static site generator for DEBUG and production
Python
3
star
11

site-starter

Port of HTML5 Boilerplate to Django templates, plus static site generator.
JavaScript
2
star
12

CouchDBX-Redux

Work in progress repo for resurrection of CouchDBX โ€”ย A Mac OS X wrapper for CouchDBX
Objective-C
2
star
13

django-http-benchmarks

A Django project for investigating HTTP performance in various scenarios.
Python
1
star
14

Holiday-Activity

Christmas Tree commit activity from Working Copy.
1
star
15

django_ticket_32539

Python
1
star
16

YouTubePortal

Reusable wrapper around the YouTube mobile site, with options to open in YouTube app and Mobile Safari
Objective-C
1
star