Django-Auto-Complete自动完成未注册错误

时间:2014-01-07 22:08:30

标签: django django-forms django-autocomplete-light

当我在Django上启动runserver命令时,我收到一个如下所示的错误:

autocomplete_light.exceptions.AutocompleteNotRegistered: CityAutocomplete not registered (registry is empty)

令我感到困惑的是,CityAutocomplete已注册,我通过转到localhost:8000/autocomplete/CityAutocomplete

进行了检查

有谁知道什么是错的? 这是我的 forms.py:

class OppForm(forms.ModelForm):
    opp_city = forms.ModelChoiceField(City.objects.all(), widget=autocomplete_light.ChoiceWidget('CityAutocomplete'))

class Meta:
    model = Opportunity
    fields = ('name','start', 'end', 'expiration','description','opp_type','location','street_address','opp_city', 'hours_per_week','opp_pic','extra_field_number','label1','label2','label3','label4','label5',)
    exclude = ('by_booth','opp_by')
def __init__(self, *args, **kwargs):
    super(OppForm, self).__init__(*args, **kwargs)
    self.fields['extra_field_number'].label = "Number of Extra Fields"

这是我的autocomplete_light_registry.py:

import autocomplete_light

from cities_light.models import City

class CityAutocomplete(autocomplete_light.AutocompleteModelBase):
    search_fields = ['^name', ]

autocomplete_light.register(City, CityAutocomplete)

我的最终目标是尝试使用django-cities-light和django-autocomplete创建一个表单字段,允许用户键入城市以获取自动填充建议。 再次感谢!

更新 我想到的一个可能的问题是,由于我的项目结构,窗口小部件可能无法找到CityAutocomplete。我的应用程序都在项目目录中名为apps的文件夹中,而不是直接位于项目目录的根目录中。

1 个答案:

答案 0 :(得分:3)

您是否也将autocomplete_light.autodiscover()放入forms.py

文档说:

  

在urls.py中,在admin.autodiscover()之前调用autocomplete_light.autodiscover(),然后在导入具有自动填充功能的表单之前,它看起来像这样......