carltongibson/django-filter

A generic system for filtering Django QuerySets based on user selections

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 45 minutes ago
Added to GitGenius on September 14th, 2026
Created on January 30th, 2009
Open Issues & Pull Requests: 92 (+0)
GitHub issues: Enabled
Number of forks: 779
Total Stargazers: 4,684 (+0)
Total Subscribers: 66 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 23.0 hours
Mean response time: 80.5 days
90th percentile: 149.2 days
Tracked items: 48

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 18
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,031 days
Stale 30+ days: 16
Stale 90+ days: 16

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Documentation (2)
  • Bug (1)
  • Improvement/Feature (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Django-filter is a reusable Django application that enables declarative filtering of QuerySets based on user input from URL parameters.

The tool solves the problem of building dynamic filtering interfaces for Django views without writing repetitive query logic. It works by letting developers define a FilterSet class that maps model fields to filter types, similar to how Django's ModelForm works. The FilterSet then processes incoming request parameters and applies the appropriate filters to a QuerySet, generating both the filtered results and the UI controls needed to display filter options.

Django-filter suits projects that need admin-like filtering interfaces in public-facing views or APIs. It works well for product listings, search results, and any paginated view where users should be able to narrow results by multiple criteria. The tool integrates directly with Django REST Framework, providing a filter backend that works alongside DRF's standard filtering and pagination. For developers familiar with Django's form and model APIs, the FilterSet syntax will feel natural and require minimal learning.

The project maintains a two-part CalVer versioning scheme and explicitly commits to supporting all current Django versions alongside their matching Python versions and the latest Django REST Framework release. Breaking changes are rare, and when necessary, the tool applies a deprecation period of at least two years where feasible, with fallbacks provided when possible. Support for Python and Django versions is dropped only when they reach end-of-life.