【发布时间】:2015-10-15 12:37:28
【问题描述】:
如何使用 django_autcomplete_light 为表单中的一个字段添加自动完成功能。我有一个基于模型的表单,我想将自动完成添加到名字字段。
到目前为止,我已经完成了以下工作:
安装 django_autocomplete_light
更改了 INSTALLED_APPS:
INSTALLED_APPS = (
'autocomplete_light',
'django.contrib.admin',
...
将其添加到 urls.py,这是我的 urls.py:
从 django.conf.urls 导入包含,url 从 django.contrib 导入管理员
urlpatterns = [
url(r"^admin/", include(admin.site.urls)),
url(r"^app/", include("app.urls")),
url(r"^autocomplete/", include("autocomplete_light.urls")),
url(r"^.*$", include("app.urls")),
]
创建了一个名为 autocomplete_light_registry.py 的文件并添加了以下内容:
import autocomplete_light as al
from .models import *
al.register(Person,
search_fields = ["^firstname"],
attrs={
"placeholder":"First name",
"data-autocomplete-minimum-characters":1,
},
widget_attrs={
"data-widget-maximum-values":4,
"class":"modern-style",
},
)
将我的 PersonForm 更改为:
class PersonForm(forms.ModelForm)
到:
class PersonForm(autocomplete_light.ModelForm)
class Meta:
model = Person
autocomplete_fields = ("firstname")
我还在表单的 html 页面中添加了以下行:
{% include 'autocomplete_light/static.html' %}
我导入了所有必要的 jquery 文件
但是自动完成没有出现。我没有收到任何错误。我按照文档教程进行操作。
我正在使用python manage.py runserver 运行应用程序。
编辑:
我将 urlpatterns 更改为(首先创建 django-autocomplete-light url):
urlpatterns = [
url(r"^autocomplete/", include("autocomplete_light.urls")),
url(r"^admin/", include(admin.site.urls)),
url(r"^app/", include("app.urls")),
url(r"^.*$", include("app.urls")),
]
但这并没有解决问题。
【问题讨论】:
标签: jquery python django autocomplete django-autocomplete-light