1

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

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

我做了所有必要的条目,settings.py并且urls.py所有的javascripts都被加载了。

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

这是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

谢谢你的帮助。

4

1 回答 1

1

我想我找到了答案:)

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

KeyError at /search/ 'CityAutocomplete'

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

forms.py我不得不

import autocomplete_light_registry

摆脱KeyError


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

于 2013-07-24T15:36:38.093 回答