Releases
v1.1.0 (latest)
Highlights
- Python 3.14 added to the supported matrix; full test suite verified on Django 5.2 + DRF 3.17.
- Much richer OpenAPI / Swagger schema generation. Filter fields now map to correct OpenAPI types and formats (
integer,boolean,string+date/date-time/email/uri, etc.) instead of every parameter rendering asstring.ListFieldandRangeFieldproducetype: arraywithitemsderived from the child field;RangeFieldaddsminItems: 2/maxItems: 2. - Verified end-to-end with both drf-spectacular and drf-yasg — see the new Swagger / OpenAPI guide.
- New Query Parameters reference covering URL formats for booleans, lists (CSV / JSON-array / repeated keys), ranges, and dates.
Bug fixes
DjFilterBackend.filter_querysetnow always returns a queryset; previously it fell off the end asNonein validation-only mode, breaking pagination downstream.- Removed a paginator monkey-patch (
view.paginator.get_results = lambda data: data) that persisted across requests after a validation error. ListField.get_valuenow correctly parses multi-character JSON arrays (["foo","bar"]) and multi-character comma-separated values (12,34,56); the previous regex only matched single-character items.FilterField.get_nested_valuenow bounds-checks the source-path parts list instead of running off the end with anIndexErroron deep dotted sources.- Schema methods (
get_schema_fields,get_schema_operation_parameters) no longer raiseTypeErrorwhen a view has nofilter_class— they return[]. - Removed a hardcoded literal-
'slug_fk'check inModelFilter.get_fields()(a debugging leftover); the "nested filters not supported" assertion now applies to every declared field. - Filter-method-override detection rewritten to use class-level identity (
type(self).filter is not Filter.filter) instead of comparing bound methods with==. - Replaced the
if queryset not in [None, [], '']:pattern that triggered Python'sNotImplementedrich-comparison fallback on every request with explicitis/!=checks.
Compatibility
- Dropped the
sixandpytzdependencies (sixis no longer needed on Python 3;pytzwas unused). - Install floors raised to realistic versions: Python ≥ 3.8, Django ≥ 3.2, DRF ≥ 3.12 (previously Python ≥ 3, Django > 1.10, DRF > 3.3).
- Tox matrix and CI workflow updated: dropped Python 3.7 and Django 1.x – 4.0 combos; added Django 5.0 / 5.1 / 5.2 and Python 3.12 / 3.13 / 3.14.
- GitHub Actions bumped to current majors (
checkout@v4,setup-python@v5,codecov-action@v4); pip caching enabled.
Other
- New
release.ymlworkflow publishes to PyPI on GitHub Release using OIDC trusted publishing (no API token required). - Dependabot config added for
github-actionsandpipecosystems. - 9 new tests covering
ListField/RangeFieldparsing edge cases and the OpenAPI type mapping; total suite is now 125 tests.
v1.0.4
v1.0.3
Bug fixing
v1.0.2
Added support for Django 4.2 and Python 3.11
v1.0.1
Bug fixing
v1.0.0
Features included
- Simple Filters (For filtering and validation)
- Model Filters
- All possible fields
- Filter Backend
- Browsable API Support
- Swagger Support
- Documentation