# carltongibson/django-filter

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/carltongibson-django-filter).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

4,683 stars · 775 forks · Python · NOASSERTION

## Links

- GitHub: https://github.com/carltongibson/django-filter
- Homepage: https://django-filter.readthedocs.io/en/main/
- awesome-repositories: https://awesome-repositories.com/repository/carltongibson-django-filter.md

## Description

django-filter is a library for filtering Django QuerySets by mapping URL parameters to database lookups using declarative syntax. It functions as a model filter generator and a database lookup tool that translates request parameters into queries to refine data results.

The project enables the automatic generation of search filters and user-facing forms based on model field definitions. It supports advanced retrieval logic through custom lookup methods, relationship paths, and full-text search integration, while providing a system for refining results within REST API endpoints.

Its capability surface includes the creation of interactive filter forms, the rendering of filtered list views, and the use of factory functions for dynamic filter set instantiation. The system also handles type-specific filtering for booleans, UUIDs, and ISO 8601 timestamps, as well as request-based filtering using authenticated user identity.

## Tags

### Data & Databases

- [Query Parameter Filters](https://awesome-repositories.com/f/data-databases/data-querying/query-parameter-filters.md) — Translates URL query parameters into valid database query clauses using a declarative mapping system. ([source](https://cdn.jsdelivr.net/gh/carltongibson/django-filter@main/README.md))
- [Declarative Query Mappings](https://awesome-repositories.com/f/data-databases/declarative-query-mappings.md) — Translates URL parameters into database lookups using a class-based declarative syntax.
- [Custom Database Lookups](https://awesome-repositories.com/f/data-databases/custom-database-lookups.md) — Handles specialized lookups like relative time windows, magic values, or empty strings through custom methods. ([source](https://django-filter.readthedocs.io/en/main/guide/tips.html))
- [Content API Query Filters](https://awesome-repositories.com/f/data-databases/data-access-querying/api-query-languages/content-api-query-filters.md) — Provides a system for refining API results by translating request parameters into database queries.
- [Schema-Driven Filter Generation](https://awesome-repositories.com/f/data-databases/data-access-querying/database-apis/graphql-api-generators/automatic-filter-generation/schema-driven-filter-generation.md) — Automatically creates filtering options by inspecting model field types and metadata at runtime.
- [Model-Based Filter Generators](https://awesome-repositories.com/f/data-databases/data-model-generation/django-model-generation/model-based-filter-generators.md) — Automatically creates search filters and user-facing forms based on Django model field definitions.
- [Custom Filter Callables](https://awesome-repositories.com/f/data-databases/data-querying/table-item-filters/custom-field-filters/custom-filter-callables.md) — Executes custom methods to determine how a specific filter parameter modifies the resulting data set. ([source](https://django-filter.readthedocs.io/en/main/guide/usage.html))
- [Complex Querying Techniques](https://awesome-repositories.com/f/data-databases/database-query-joins/complex-querying-techniques.md) — Supports advanced data retrieval logic through custom lookup methods and relationship paths beyond simple matches.
- [Model-Based Filter Generation](https://awesome-repositories.com/f/data-databases/model-based-filter-generation.md) — Creates search filters automatically based on model field types while allowing specific field inclusions or exclusions. ([source](https://django-filter.readthedocs.io/en/main/ref/filterset.html))
- [Model-Driven Filter Generation](https://awesome-repositories.com/f/data-databases/model-driven-filter-generation.md) — Automatically generates a suite of search filters by inspecting model field types and metadata.
- [Queryset Filtering Backends](https://awesome-repositories.com/f/data-databases/queryset-filtering-backends.md) — Implements pluggable backends that constrain Django QuerySets based on parameters passed through the request URL. ([source](https://django-filter.readthedocs.io/en/main/_sources/index.txt))
- [Queryset Filtering Tools](https://awesome-repositories.com/f/data-databases/queryset-filtering-tools.md) — Modifies database query objects incrementally by applying lookup filters based on validated user input.
- [Dynamic Filtering](https://awesome-repositories.com/f/data-databases/dynamic-filtering.md) — Injects dynamic arguments or custom behavior into the filtering process by overriding filter set initialization. ([source](https://django-filter.readthedocs.io/en/main/guide/rest_framework.html))
- [Filter Form Customization](https://awesome-repositories.com/f/data-databases/dynamic-filtering/filter-label-customizers/filter-form-customization.md) — Allows customization of the filter interface and input validation by subclassing a dedicated form class. ([source](https://django-filter.readthedocs.io/en/main/ref/filterset.html))
- [Data](https://awesome-repositories.com/f/data-databases/entity-relationships/relational-entity-filtering/type-filtering/data.md) — Provides specialized filters that validate and match URL parameters against specific data types like booleans, UUIDs, and timestamps. ([source](https://django-filter.readthedocs.io/en/main/ref/filters.html))
- [Full Text Search](https://awesome-repositories.com/f/data-databases/full-text-search.md) — Integrates full-text search capabilities to scan multiple text fields for a specific term via a single filter input. ([source](https://django-filter.readthedocs.io/en/main/guide/tips.html))
- [Metadata Filtering](https://awesome-repositories.com/f/data-databases/metadata-filtering.md) — Extracts attributes from model field definitions to automatically populate descriptive labels and help text for filters. ([source](https://django-filter.readthedocs.io/en/main/guide/tips.html))
- [Null Value Filtering in Queries](https://awesome-repositories.com/f/data-databases/null-value-handling/null-value-filtering-in-queries.md) — Checks if a field is empty or null using boolean toggles or dedicated menu labels within database queries. ([source](https://django-filter.readthedocs.io/en/main/guide/tips.html))
- [Result Sorting](https://awesome-repositories.com/f/data-databases/result-sorting.md) — Orders the resulting data set based on specified fields, including computed values or non-model properties. ([source](https://django-filter.readthedocs.io/en/main/ref/filters.html))
- [Active Record Search Forms](https://awesome-repositories.com/f/data-databases/search-indexing/complex-search-querying/form-driven-query-builders/active-record-search-forms.md) — Implements form-driven query building that allows users to interactively filter records via UI inputs.
- [Filter Selection Interfaces](https://awesome-repositories.com/f/data-databases/search-result-filtering/single-selection-filters/filter-selection-interfaces.md) — Creates a user interface for selecting specific filter criteria to refine and narrow down list results. ([source](https://django-filter.readthedocs.io/en/main/_sources/index.txt))
- [Multi-Selection Filters](https://awesome-repositories.com/f/data-databases/search-result-filtering/single-selection-filters/multi-selection-filters.md) — Restricts results to a predefined list of valid options supporting single or multiple selections and null matching. ([source](https://django-filter.readthedocs.io/en/main/ref/filters.html))
- [Table View Filtering](https://awesome-repositories.com/f/data-databases/table-view-filtering.md) — Provides generic views that apply model filters and render the resulting data through a template. ([source](https://django-filter.readthedocs.io/en/main/guide/usage.html))

### Artificial Intelligence & ML

- [Database Lookup Extensions](https://awesome-repositories.com/f/artificial-intelligence-ml/prompt-templates/field-filtering/database-field-lookups/database-lookup-extensions.md) — Provides a mechanism for implementing complex database filtering via custom lookups and relationship paths.

### Software Engineering & Architecture

- [Complex Query Filtering Logic](https://awesome-repositories.com/f/software-engineering-architecture/custom-logic-filtering-hooks/complex-query-filtering-logic.md) — Uses custom callables or methods to filter data sets using complex lookups beyond simple field matches. ([source](https://django-filter.readthedocs.io/en/main/ref/filters.html))
- [Custom Filtering Methods](https://awesome-repositories.com/f/software-engineering-architecture/custom-method-registration/custom-filtering-methods.md) — Allows the definition of custom callable methods to handle complex filtering logic beyond standard database lookups.
- [Request Context Injection](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/environment-variable-management/environment-variables/environment-variable-based-configuration/request-context-injection.md) — Integrates data from the current HTTP request object into filtering logic to restrict results by user identity.

### Web Development

- [API Query Filtering](https://awesome-repositories.com/f/web-development/rest-api-frameworks/api-query-filtering.md) — Adds powerful search and filter capabilities to REST API endpoints for refined data retrieval.
- [Dynamic Filter Generators](https://awesome-repositories.com/f/web-development/dynamic-filter-generators.md) — Django Filter creates a filter set for a model using a factory function instead of a class declaration. ([source](https://django-filter.readthedocs.io/en/main/ref/filterset.html))
- [Form Validation Engines](https://awesome-repositories.com/f/web-development/form-validation-engines.md) — Uses a form layer to sanitize and validate URL parameters before passing them to the database engine.

### DevOps & Infrastructure

- [Request Context Filtering](https://awesome-repositories.com/f/devops-infrastructure/admission-webhooks/request-filters/request-context-filtering.md) — Enables filtering of results based on properties of the incoming request, including the authenticated user's identity. ([source](https://django-filter.readthedocs.io/en/main/guide/usage.html))

### Programming Languages & Runtimes

- [Factory Functions](https://awesome-repositories.com/f/programming-languages-runtimes/class-instantiation/factory-functions.md) — Provides factory functions to dynamically instantiate filter sets, decoupling the logic from static class declarations.

### User Interface & Experience

- [Filter Input Generation](https://awesome-repositories.com/f/user-interface-experience/filter-input-generation.md) — Generates appropriate UI elements, such as range inputs and toggles, to capture user filtering criteria. ([source](https://django-filter.readthedocs.io/en/main/ref/widgets.html))
- [Interactive Data Filter Forms](https://awesome-repositories.com/f/user-interface-experience/interactive-data-filter-forms.md) — Automatically generates user-facing forms from model field definitions to enable interactive data filtering. ([source](https://django-filter.readthedocs.io/en/main/))

### Part of an Awesome List

- [General Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/general-utilities.md) — Filters QuerySets based on user-provided criteria.
