我试图理解如何对现有项目使用django-autocomplete-light。这似乎是django的一个很好的自动完成解决方案,我已经在使用普通的ModelChoiceFields。
所以,假设我有一个名为MyModel的模型,它有一个id和一个名称。我想知道的是创建一个表单小部件的最简单的方法,它将为我提供与
mymodel = forms.ModelChoiceField( required=True, queryset=ships.models.Authority.objects.all() , )
所以我可以将这个小部件添加到我想要的任何表单中,以便在不使用selec.t的情况下选择MyModel的实例
要做到这一点需要采取哪些步骤?我已经在已安装的应用程序中添加了“自动完成”和
url(r'autocomplete/', include('autocomplete_light.urls')),
到url.py和
import autocomplete_light
autocomplete_light.autodiscover()
以前
admin.autodiscover()
然而,我对下一步该做什么感到困惑
请不要在我已经彻底阅读过的文档中指我。
选择小部件是ModelChoiceField的默认设置
此表单域不指定小部件,因此the select widget should be used by default使用:
这就是为什么您看到的是选择字段而不是自动完成。
你读过django docs about using widgets吗?
改用autocomplete\u light.ChoiceWidget
你要做的就是specify the widget:
如果不知道自动完成的名称,请以staff身份登录并打开
http://yoursite/autocomplete/
。确保正确加载了jquery,并且也加载了autocomplete light的静态文件!
替代品
FTR:另一种方法是可能的,使用} or ^{} 。API docs是可以接受的,但它不能打败reading the source code。
autocomplete_light.modelform_factory
使用shortcuts like ^{总之,如果您使用的是ModelForm,我认为对您来说最简单的方法是使用get_widgets_dict快捷方式。
隐藏文档
您可能找不到the cookbook,因为它是docs廑rewrite分支中正在进行的工作,但是“高级基础”的第二部分提供了几个使用小部件的示例。
我知道文档有一个问题,因此docs_rewrite分支。现在我的重点是改进移动支持。
相关问题 更多 >
编程相关推荐