Heavily based on django-autocomplete-light v2 workflow and concepts, this toolkit offers a front-end agnostic way to get fields for autocompletion.
It will provide:
- a simple and configurable entry-point management,
- a REST-like HTTP API to search for results,
- Fields and widgets that will make the interface between our Django code and your Javascript.
Stable, used in production.
$ pip install django-agnocomplete
Or add django-agnocomplete
to your project requirements.
The full documentation is browsable on Read the Docs
Install tox
in your environment (it could be a virtualenv) and run:
$ tox
It'll run the tests for all the combinations of the following:
- Python 3.6, 3.7, 3.8, 3.9.
- Django 2.2.
and a flake8
check.
To target a specific test case, use the following:
$ tox -e py37-django22 -- demo.tests.test_core.AutocompleteChoicesPagesOverrideTest
Everything after the double-dash will be passed to the django-admin.py test command.
If you need to install a debugger (let's say ipdb), you can use the TOX_EXTRA
environment variable like this:
$ TOX_EXTRA=ipdb tox -e py36-django22
Note
We've got a self documented Makefile for common tasks, such as running the tests, building the docs, etc.
The (draft) demo site can be browsed using the Django devserver. Run:
$ make serve
It will run a syncdb (it may ask you questions) and then a runserver with your current demo.settings
. You can browse the (very rough) website at http://127.0.0.1:8000/. You can add
any runserver options you want using the tox positional parameters, like this:
$ tox -e serve -- 9090 # to change the listening port
Here you'll be able to see that django-agnocomplete
has been easily and rapidly integrated with selectize.js
, select2
, jquery-autocomplete
and typeahead
. With the same backend, you can plug the JS front-end you want.
This demo project is not build as a production-ready application, models can change, but there's no migration in it. If you have database errors, you can try to remove it using:
$ make clean-db
Or, for more radical cleanup:
$ make clean-all
This piece of software is being published under the terms of the MIT License. Please read the LICENSE file for more details.