- Fixed serialization for options element (#112)
- Add support for multiple django admin sites (#110)
- Add support for Django 5.0 and Python 3.12
- Added the
completion.js.map
file into the distribution to fix compatibility with Django 4.0 collectstatic (thanks to @magdapoppins);
- Django 4.0 compatibility (thanks to @Lotfull);
- added support for new string-specific comparison operators:
startswith
,not startswith
,endswith
,not endswith
;
- fixed a deprecation warning for Django 3.1 (thanks to @sainAk);
- fixed
django-completion
bug related to removed chained models from suggestions; - fixed
django-completion
bug related to fixed circular dependencies.
Related pull requests:
- fixed regression for Django < 2.1 (thanks to @derekenos for reporting the issue);
- fixed
url()
deprecation warnings for Django 3.1+ (thanks to @ecilveks);
- the completion JavaScript widget has been moved to its own repo and is now available as a standalone package on npm. It still ships with the Python package, though, so if you don't need to embed the completion widget in your custom JavaScript application, no additional installation steps are required;
- added support for GenericIPAddressField (thanks to @HannaShalamitskaya for reporting the issue);
- the source code is now linted with flake8 and isort;
- added a help text to some operators;
- fixed the background color in the dark mode (django 3.2+);
- add
~
operator for date/datetime fields;
write_tables
argument for PLY parser is now disabled by default. This change prevents an error that may arise if DjangoQL is installed into un-writeable location (#63, #53. Thanks to @sochotnicky for the PR);- fixed quotes handling in completion widget (#62, thanks to @nicolazilio for reporting this);
- add basic support for models.BinaryField (thanks to @Akay7);
- fixed inconsistency in search by fields with choices (#58, thanks to @pandichef for reporting this);
- Officially compatible with Python 3.9 (no changes in the code, just added it to the test matrix);
- New feature: field suggestion options are now loaded asynchronously via Suggestions API;
- Breaking:
DjangoQLField.get_options()
now accepts mandatorysearch
parameter. If you've implemented custom suggestion options for your schema, please add handling of this parameter (you should only return results that matchsearch
criteria); - Breaking: when using in the admin together with the standard Django
search, DjangoQL checkbox is now on by default. If you don't want this
behavior, you can turn it off with
djangoql_completion_enabled_by_default
option. Thanks to @nicolazilio for the idea; - Deprecated: if you've used
DjangoQLSchema.as_dict()
somewhere in your code, please switch to new schema serializers instead (see inserializers.py
); - Improved field customization examples in the docs (#55, thanks to @joeydebreuk);
- Added support for Django 3.1.x (#57, thanks to @jleclanche)
- Fixed compatibility with upcoming Django 3.0 (thanks to @vkrizan for the reminder);
- Added "DjangoQL syntax help" link to the error messages in Django admin (thanks to @AngellusMortis for the idea);
- Fixed: DateField and DateTimeField lookups no longer crash on comparison with None (thanks to @st8st8);
- Officially compatible with Django 2.2 (no changes in the code, just added it to the test matrix);
- Added convenience method DjangoQLSearchMixin.djangoql_search_enabled() (thanks to @MilovanovM);
- DjangoQL syntax help page in admin now requires users to be logged-in (thanks to @OndrejIT);
- Fixed removal/override of related fields, when the referenced model is linked from more parent models on multiple levels (thanks to @vkrizan);
- fixed weird completion widget behavior for unknown field types (thanks to @vkrizan);
- completion widget now supports passing either CSS selector or HTMLElement instance (thanks to @vkrizan);
- completion widget converted to a constructable JS object to improve its compatibility with JS frameworks (thanks to @vkrizan);
- DjangoQL no longer depends on ContentType. Fixes use cases when the package is used without Django admin and ContentType is not used;
- Removed .DS_Store from the distribution (thanks to @vkrizan);
- Added Python 3.7 and Django 2.1 to the test matrix;
- removed PYTHONDONTWRITEBYTECODE from the setup.py and added test_project to the distribution (thanks to @vkrizan);
- Introducing Search Modes in the admin: now users can switch between Advanced
Search mode (DjangoQL) and a standard Django search that you define with
search_fields
in your ModelAdmin;
- Improved schema auto-generation. Now it avoids adding fields that may cause
circular references, like
author.book.author.book...
;
- Fixed compatibility with Django 2.0, added Django 2.0 to the test matrix;