django autocomplete_light默认小部件而不是自动完成小部件

时间:2013-07-21 14:19:56

标签: python django django-autocomplete-light

我想创建一个简单的表单,其中包含一个简单的输入文本字段,该字段使用自动填充来帮助用户填写输入字段

我正在尝试 django_autocomplete_light 工作 - 我仔细按照说明操作,但渲染的表单仍然有一个简单的“下拉”(选择)菜单,而不是自动填充 textfield ..(其中所有城市需要很长时间才能处理)

我在settings.pyurls.py中填写了所有必要条目,并且所有javascripts都已加载。

有趣的是:我已经开始工作了 - 而不是下拉列表菜单中有一个带有自动完成功能的 textfield - 然后我尝试了别的什么,当我再次尝试以前的工作解决方案时,它不再起作用了。我找不到我的错误:(

这是autocomplete_light_registry.py

   import autocomplete_light

   from cities_tiny.models import City

   autocomplete_light.register(City, search_fields=('name','name_ascii'),
       autocomplete_js_attributes={'placeholder': 'city name ..'})

这是forms.py

from django import forms
import autocomplete_light
from models import Search

class SearchForm(forms.ModelForm):
    class Meta:
        widgets = autocomplete_light.get_widgets_dict(Search)
        model = Search

这是models.py

from django.db import models
from django.core import urlresolvers


class Search(models.Model):
    city = models.ForeignKey('cities_tiny.city', null=True, blank=True)


    def get_absolute_url(self):
        return urlresolvers.reverse('non_admin:widget_update', args=(self.pk,))

如果这样可行,那就没关系了,但我宁愿把形式...... 我想我不需要额外的模型“搜索”,因为我已经有“cities_tiny.city”。 表单应从“City”模型中获取自动填充值。

我还发现我不能像在文档中那样在模型中的某个地方使用“CityAutocomplete”。它总是说KeyError

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我想我找到了答案:)

使用已注册的自动填充名称时,我总是收到以下消息:

KeyError at /search/ 'CityAutocomplete'

localhost:8000 / autocomplete / 向我展示了所有已注册的自动填充功能,但是这些自动填充功能无法使用

forms.py我必须

import autocomplete_light_registry

摆脱KeyError


正如我之前提到的,我以某种方式让它工作,但我很确定我没有导入autocomplete_light_registry 所以如果有人提示“真正的”错误所在......非常感谢