我想用简单的输入文本字段创建一个简单的表单,该表单使用自动完成功能来帮助用户填写输入字段

我正在尝试使django_autocomplete_light正常工作-我严格按照说明进行操作,但是呈现的表单仍然具有简单的“下拉”(选择)菜单,而不是自动完成文本字段。.(其中所有城市都需要很长时间来处理)

我在settings.pyurls.py中进行了所有必要的输入,并加载了所有JavaScript。

有趣的事情:我已经可以使用它了-而不是下拉菜单中有一个具有自动完成功能的文本字段-然后我尝试了其他方法,当我再次尝试使用以前的可行解决方案时,它不再起作用。我找不到我的错误:(

这是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”。
该表单应从“城市”模型中获取其自动完成值。

我还发现,我无法在模型中的某些地方(如文档中)使用“ CityAutocomplete”。它总是说KeyError

谢谢你的帮助。

最佳答案

我想我找到了答案:)

使用注册的自动完成名称时,总是收到以下消息:

KeyError at /search/ 'CityAutocomplete'


localhost:8000 / autocomplete /向我显示了所有已注册的自动完成功能,但是这些自动完成功能不可用

forms.py中,我不得不

import autocomplete_light_registry


摆脱KeyError



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

关于python - django autocomplete_light默认小部件,而不是自动完成小部件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17773296/

10-15 07:58