tutorial dal_select2 python django autocomplete django-autocomplete-light

python - dal_select2 - django-autocomplete-light uso simple



(1)

Estoy tratando de entender cómo usar django-autocomplete-light para un proyecto existente. Esto parece una buena solución de autocompletar para django para la cual ya estoy usando los ModelChoiceFields normales.

Entonces, digamos que tengo un modelo llamado MyModel que tiene una identificación y un nombre. Lo que me gustaría saber es la forma más sencilla posible de crear un widget de formulario que me proporcione la misma funcionalidad con

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

así que podría agregar ese widget a cualquier formulario que quisiera para seleccionar instancias de MyModel sin usar selec.t

¿Cuáles son los pasos necesarios para tener eso? Ya he agregado ''autocomplete_light'' a INSTALLED_APPS y

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

a urls.py y

import autocomplete_light autocomplete_light.autodiscover()

antes de

admin.autodiscover()

sin embargo me estoy confundiendo con qué hacer a continuación :(

Por favor, no me apuntes en la documentación que ya he leído a fondo.


El widget de selección es predeterminado para ModelChoiceField

Este campo de formulario no especifica un widget, por lo que el widget de selección debe usarse de forma predeterminada con:

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

Esta es la razón por la que ve un campo de selección en lugar de un autocompletado.

¿ Leíste documentos de django sobre el uso de widgets ?

Utilice autocomplete_light.ChoiceWidget en su lugar

Todo lo que tienes que hacer es especificar el widget :

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

Si no sabe cuál es el nombre del autocompletado, ingrese como personal y abra http://yoursite/autocomplete/ .

Asegúrate de que tienes jquery correctamente cargado y que los archivos estáticos de autocomplete-light también están cargados!

Alternativas

FTR: otra forma es posible, usando autocomplete_light.modelform_factory usando atajos como autocomplete_light.modelform_factory o autocomplete_light.get_widgets_dict . Los documentos API son pasables, pero no superan la lectura del código fuente .

En general, creo que lo más fácil para usted es utilizar el acceso directo get_widgets_dict si está usando un ModelForm .

Documentos ocultos

Es posible que no haya encontrado el libro de recetas porque es un trabajo en progreso en la rama docs_rewrite, pero la segunda parte de "Conceptos básicos de alto nivel" proporciona varios ejemplos de cómo usar el widget.

Sé que los documentos tienen un problema, de ahí la rama docs_rewrite. En este momento me estoy enfocando en mejorar el soporte móvil.