2

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 を使用して、ユーザーが都市を入力してオートコンプリートの候補を取得できるフォーム フィールドを作成することです。再度、感謝します!

更新: 私が考えた問題の 1 つは、プロジェクトの構造が原因で、ウィジェットが CityAutocomplete を見つけられない可能性があることです。私のアプリはすべて、プロジェクト ディレクトリのルートに直接置かれるのではなく、プロジェクト ディレクトリの apps というフォルダーにあります。

4

1 に答える 1

3

も入れautocomplete_light.autodiscover()ましたforms.pyか?

ドキュメントには次のように記載されています。

urls.py では、 autocomplete_light.autodiscover() を admin.autodiscover()の前に呼び出し、 autocompletes を使用してフォームをインポートする前に、次のように表示できます...

于 2014-03-12T07:24:03.413 に答える