History¶
0.3.8 (2018-08-08)¶
- Fixed
SQLAlchemyFilterBackendby not joining nested models when they are already eager loaded viaquery.options().
0.3.7 (2018-07-27)¶
- Added
StrictModel.emptywhich is new default. It returns empty queryset when any filter validations fail. - Fixed
inlookup. Previously if any of the items were invalid whole filter would fail and depending on strict mode would either return all results, no results or will raise exception. Now inStrictMode.emptyandStrictMode.dropany invalid items are ignored which will filter results for valid items. See #63. - Added ability in
ModelFilterSetto customize filter names by providingextra_kwargswith fieldsource. See #66.
0.3.6 (2018-07-23)¶
- Added support for
extra_kwargsinModelFilterSet.Meta. - Added
CoreAPIURLFilterBackendwhich enables documented filters in swagger docs. - Added
iinlookup in plain and sqlalchemy backends. - Fixing inconsistency between plain and Django
week_daylookup. Now both are consistent with1-Monday and7-Sunday.
0.3.5 (2018-02-27)¶
- Django 2 support.
- Using tox-travis for travis builds.
- Fixed negated queries in Django backend.
Previously negation did
NOT (condition1 and condition2)vs expectedNOT condition1 and NOT condition2. See #53.
0.3.4 (2017-08-17)¶
- Py36 compatibility by switching to
enum-compatfromenum34 - Improvement to
READMEby including imports in code examples - Defaulting
SQLAlchemyModelFilterSetto useSQLAlchemyFilterBackend - Defaulting
PlainModelFilterSetto usePlainFilterBackend - Using universal wheels for distribution
0.3.3 (2017-06-15)¶
- Fixed bug which did not allow to use SQLAlchemy backend fully
without having
django.contrib.contenttypesin installed apps. See #36. - Improved SQLAlchemy versions compatibility.
- Added
URLFilterBackendalias in DRF integration for backend to reduce confusion withDjangoFilterBackendas in url filter core backend.
0.3.2 (2017-05-19)¶
- Fixed plain backend to return list in Python 3 vs
filter()generator which is not compatible with Django pagination since it requireslen()to be implemented.
0.3.1 (2017-05-18)¶
- Fixed bug where default filters were used in root filtersets. As a result additional querystring parameters were validation which broke other functionality such as pagination.
0.3.0 (2017-01-26)¶
- Added plain objects filtering support. More in docs and GitHub issue #8.
- Added CallableFilter which allows to implement custom filters.
- Normalizing to DRF’s
ValidationErrorwhen usingStrictMode.Failsince filterset raises Django’sValidationErrorwhich caused 500 status code. - Fixes
ModelFilterSetautomatic introspection to ignoreGenericForeignKeysince they dont have form fields associated with them. See #20. - Releasing with wheels.
0.2.0 (2015-09-12)¶
Added SQLAlchemy support.
FilterSetinstances have much more useful__repr__which shows all filters at a glance. For example:>>> PlaceFilterSet() PlaceFilterSet() address = Filter(form_field=CharField, lookups=ALL, default_lookup="exact", is_default=False) id = Filter(form_field=IntegerField, lookups=ALL, default_lookup="exact", is_default=True) name = Filter(form_field=CharField, lookups=ALL, default_lookup="exact", is_default=False) restaurant = RestaurantFilterSet() serves_hot_dogs = Filter(form_field=BooleanField, lookups=ALL, default_lookup="exact", is_default=False) serves_pizza = Filter(form_field=BooleanField, lookups=ALL, default_lookup="exact", is_default=False) waiter = WaiterFilterSet() id = Filter(form_field=IntegerField, lookups=ALL, default_lookup="exact", is_default=True) name = Filter(form_field=CharField, lookups=ALL, default_lookup="exact", is_default=False)
0.1.1 (2015-09-06)¶
- Fixed installation issue where not all subpackages were installed.
0.1.0 (2015-08-30)¶
- First release on PyPI.