Ser*_*eim 17 python django autocomplete django-autocomplete-light
我试图了解如何使用django-autocomplete-light为现有项目.对于我已经使用普通ModelChoiceFields的django来说,这似乎是一个很好的自动完成解决方案.
所以,假设我有一个名为MyModel的Model,它有一个id和一个名字.我想知道的是创建表单窗口小部件的最简单方法,它可以为我提供相同的功能
mymodel = forms.ModelChoiceField( required=True, queryset=ships.models.Authority.objects.all() , )
所以我可以将该小部件添加到我想要的任何形式,以便在不使用selec.t的情况下选择MyModel的实例
有什么必要的步骤?我已经将'autocomplete_light'添加到了INSTALLED_APPS和
url(r'autocomplete/', include('autocomplete_light.urls')),
Run Code Online (Sandbox Code Playgroud)
到urls.py和
import autocomplete_light
autocomplete_light.autodiscover()
Run Code Online (Sandbox Code Playgroud)
之前
admin.autodiscover()
Run Code Online (Sandbox Code Playgroud)
但是我对下一步做什么感到困惑:(
请不要在我已经完整阅读的文档中指出我.
jpi*_*pic 20
此表单字段未指定窗口小部件,因此默认情况下应使用选择窗口小部件:
mymodel = forms.ModelChoiceField(
required=True,
queryset=ships.models.Authority.objects.all(),
)
Run Code Online (Sandbox Code Playgroud)
这就是您看到选择字段而不是自动完成的原因.
你读过有关使用小部件的django文档了吗?
您所要做的就是指定小部件:
mymodel = forms.ModelChoiceField(
required=True,
queryset=ships.models.Authority.objects.all(),
widget=autocomplete_light.ChoiceWidget('AutocompleteName')
)
Run Code Online (Sandbox Code Playgroud)
如果您不知道自动填充的名称是什么,请以人员身份登录并打开http://yoursite/autocomplete/.
确保正确加载了jquery,并且还加载了autocomplete-light的静态文件!
FTR:另一种方式是可行的,利用autocomplete_light.modelform_factory使用类似的快捷方式autocomplete_light.modelform_factory或autocomplete_light.get_widgets_dict.API文档是可以通过的,但它不会轻易阅读源代码.
总而言之,如果您使用的是ModelForm,我认为最简单的方法是使用get_widgets_dict快捷方式.
您可能没有找到该cookbook,因为它是docs_rewrite分支中正在进行的工作,但"高级基础"的第二部分提供了几个使用该小部件的示例.
我知道文档有问题,因此docs_rewrite分支.现在我正专注于改善移动支持.
| 归档时间: |
|
| 查看次数: |
11552 次 |
| 最近记录: |