django-автозаполнение-легкое простое использование

Я пытаюсь понять, как использовать django-автозаполнение-свет для существующего проекта. Это похоже на хорошее решение автозаполнения для django, для которого я уже использую обычные ModelChoiceFields.

Итак, предположим, что у меня есть модель с именем MyModel, которая имеет идентификатор и имя. То, что я хотел бы знать, - это самый простой способ создания виджета формы, который предоставит мне такую же функциональность с

mymodel = forms.ModelChoiceField(  required=True, queryset=ships.models.Authority.objects.all() , ) 

поэтому я мог бы добавить этот виджет в любую форму, которую я хотел, чтобы выбрать экземпляры MyModel без использования selec.t

каковы необходимые шаги для этого ? Я уже добавил "autocomplete_light" для INSTALLED_APPS и

url(r'autocomplete/', include('autocomplete_light.urls')),

к urls.py и

import autocomplete_light
autocomplete_light.autodiscover()

до

admin.autodiscover()

однако я путаюсь с тем, что делать дальше: (

пожалуйста, не указывайте мне в документации, которую я уже прочитал полностью.

1 ответов


выберите виджет по умолчанию для ModelChoiceField

это поле формы не указывает виджет, поэтому виджет select должен использоваться по умолчанию С:

mymodel = forms.ModelChoiceField(
                required=True,
                queryset=ships.models.Authority.objects.all(),
          ) 

вот почему вы видите поле select вместо автозаполнения.

вы читали Django docs об использовании виджетов ?

используйте autocomplete_light.ChoiceWidget вместо

все, что вам нужно сделать, это указать виджет:

mymodel = forms.ModelChoiceField(
            required=True,
            queryset=ships.models.Authority.objects.all(),
            widget=autocomplete_light.ChoiceWidget('AutocompleteName')
          ) 

если вы не знаете, как называется автозаполнение, войдите в систему как персонал и откройте http://yoursite/autocomplete/.

убедитесь, что у вас есть jQuery правильно загружен и что staticfiles автозаполнения-света загружены тоже !

варианты

FTR: другой способ возможен, используя autocomplete_light.modelform_factory используя сочетания клавиш, такие как autocomplete_light.modelform_factory или autocomplete_light.get_widgets_dict. API docs проходимы, но не бьют Читать источник код.

в целом, я думаю, что проще всего для вас использовать get_widgets_dict shortcut если вы используете ModelForm.

скрытые документы

вы, возможно, не нашли книги потому что это работа в ветви docs_rewrite, но вторая часть "основы высокого уровня" предоставляет несколько примеров использования виджета.

Я знаю, что у документов есть проблема, поэтому docs_rewrite отделение. Сейчас я сосредоточен на улучшении мобильной поддержки.