当我在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的文件夹中,而不是直接位于项目目录的根目录中。
答案 0 :(得分:3)
您是否也将autocomplete_light.autodiscover()
放入forms.py
?
文档说:
在urls.py中,在admin.autodiscover()之前调用autocomplete_light.autodiscover(),然后在导入具有自动填充功能的表单之前,它看起来像这样......