Skip to content

Changelog

All notable changes to drf-restflow will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0a1] - 2025-11-25

Added

Core Features

  • FilterSet: Declarative filtering system for Django REST Framework
  • Field Types: Comprehensive set of filter fields
  • StringField, IntegerField, FloatField, DecimalField
  • BooleanField, DateField, DateTimeField, TimeField, DurationField
  • ChoiceField, MultipleChoiceField
  • EmailField, IPAddressField
  • ListField for array filtering
  • OrderField for result ordering
  • RelatedField for related fields in models
  • Field base class for custom filters

Declaration Styles

  • Type annotation support (name: str, price: int)
  • Explicit field declarations
  • Model-based automatic field generation
  • Mixed declaration styles

Lookup System

  • Automatic lookup generation from field definitions
  • Lookup categories (basic, text, comparison, date, time, postgres, pg_array)
  • Custom lookup expressions via strings or callables
  • Field variants (base field + lookups + negations)

Filtering Features

  • Negation support via ! suffix
  • Multiple filter operators (AND, OR, XOR)
  • Custom filter methods
  • Preprocessors and postprocessors
  • Related field filtering

Ordering

  • OrderField for flexible result ordering
  • Ascending/descending support
  • Multiple field ordering
  • Configurable ordering direction

PostgreSQL Support

  • PostgreSQL array field filtering
  • Array lookups (contains, overlaps, contained_by)
  • Full-text search support
  • Trigram similarity

Model Integration

  • Automatic field generation from Django models
  • Support for model field types
  • ForeignKey and OneToOneField filtering
  • Model choice field detection

Validation

  • Built on DRF's validation system
  • Automatic type conversion
  • Field-level and custom validators
  • Detailed error messages

Type Safety

  • Python type hint support
  • Automatic field type inference
  • Type mapping for common Python types
  • Literal type for choices

Documentation

  • Comprehensive user guide
  • API reference
  • Quick start tutorial
  • PostgreSQL guide
  • Migration guide from django-filter

Testing

  • Test suite with 95%+ coverage
  • PostgreSQL-specific tests
  • Multiple Python version support (3.10-3.14)
  • Multiple Django version support (3.2-5.2)
  • CI/CD with GitHub Actions

Developer Experience

  • Modern Python features (type hints, dataclasses)
  • Clear error messages
  • Extensive docstrings
  • IDE-friendly API

Version Support

Version Python Django DRF Status
1.0.0a1 3.10-3.14 3.2-5.2 3.14+ Alpha

Migration from django-filter

drf-restflow offers similar functionality to django-filter with a more modern, declarative API. Key differences:

  • Type annotations: Use Python type hints instead of explicit field declarations
  • Automatic negation: Built-in ! suffix support for all filters
  • Lookup categories: Group related lookups (e.g., "comparison" for gt/gte/lt/lte)
  • Better validation: Integrated with DRF's validation system

For migration assistance, refer to the FilterSet Guide and Fields Guide for comprehensive documentation.

Deprecation Policy

Following semantic versioning:

  • Major versions (x.0.0): May include breaking changes
  • Minor versions (0.x.0): New features, backward compatible
  • Patch versions (0.0.x): Bug fixes, backward compatible

Deprecation warnings will be issued for at least one minor version before removal.

Reporting Issues

Found a bug or have a feature request? Please open an issue on GitHub.

Contributing

See Contributing Guide for information on how to contribute to this changelog and the project.