当我在 Django 上启动 runserver 命令时,收到如下错误:
autocomplete_light.exceptions.AutocompleteNotRegistered: CityAutocomplete not registered (registry is empty)
令我困惑的是 CityAutocomplete 已注册,我通过访问 localhost:8000/autocomplete/CityAutocomplete
进行了检查
有人知道这是怎么回事吗? 这是我的 表单.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 的文件夹中,而不是直接位于项目目录的根目录中。
最佳答案
您是否也将 autocomplete_light.autodiscover()
放入 forms.py
中?
文档说:
In urls.py, call autocomplete_light.autodiscover() before admin.autodiscover() and before any import of a form with autocompletes, it can look like this...
关于Django 自动完成自动完成未注册错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982973/