I am trying to understand how to use django-autocomplete-light for an existing project. This seems like a good autocomplete solution for django for which I am already using normal ModelChoiceFields.
So, let’s say that I have a Model named MyModel that has an id and a name. What I’d like to know is the simplest possible way of creating a form widget that would provide me the same functionality with
mymodel = forms.ModelChoiceField( required=True, queryset=ships.models.Authority.objects.all() , )
so I’d be able to add that widget to any form I wanted in order to select instances of MyModel without using selec.t
What are the required steps to have that ? I’ve already added ‘autocomplete_light’ to INSTALLED_APPS and
url(r'autocomplete/', include('autocomplete_light.urls')),
to urls.py and
import autocomplete_light
autocomplete_light.autodiscover()
before
admin.autodiscover()
however I am getting confused with what to do next 🙁
Please don’t point me in the documentation I’ve already read it thoroughly.
Select widget is default for ModelChoiceField
This form field does not specify a widget, so the select widget should be used by default with:
This is why you see a select field instead of an autocomplete.
Did you read django docs about using widgets ?
Use autocomplete_light.ChoiceWidget instead
All you have to do is specify the widget:
If you don’t know what is the name of the autocomplete, login as staff and open
http://yoursite/autocomplete/.Ensure that you have jquery properly loaded and that autocomplete-light’s staticfiles are loaded too !
Alternatives
FTR: another way is possible, using
autocomplete_light.modelform_factoryusing shortcuts likeautocomplete_light.modelform_factoryorautocomplete_light.get_widgets_dict. API docs are passable but it does not beat reading the source code.All in all, I think the easiest for you is using the get_widgets_dict shortcut if you are using a ModelForm.
Hidden docs
You might not have found the cookbook because it is a work in progress in the docs_rewrite branch, but the second part of “High level basics” provides several examples of using the widget.
I know that the docs have a problem, hence the docs_rewrite branch. Right now I’m focusing on improving mobile support.