2014-01-07 167 views
2

,當我發動的Django的runserver命令,我收到它看起來像這樣的錯誤:Django的自動完成自動完成未註冊錯誤

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的城市光和Django的自動完成創建表單字段,允許用戶輸入城市來獲取自動填充建議。 再次感謝!

更新: 一個我想到可能出現的問題是,它可能是小部件無法找到,因爲我的項目結構的CityAutocomplete。我的應用程序都位於項目目錄中名爲apps的文件夾中,而不是直接位於項目目錄的根目錄中。

+1

你是否在'admin.autodiscover()'之前的urlconf中調用'autocomplete_light.autodiscover()'? – sk1p

+0

是的,我遵循了文檔。不知道發生了什麼。 – Aurora

+0

只要你的'autocomplete_light_registry'可以導入爲'yourapp.autocomplete_light_registry',它就可以工作。你有錯誤回溯到你的蹤跡嗎?如果沒有,你可以使用'--traceback'選項運行管理命令。 – sk1p

回答

3

你還把autocomplete_light.autodiscover()放在forms.py嗎?

文檔說:

在urls.py,叫admin.autodiscover前autocomplete_light.autodiscover()(),並自動完成形式的任何進口之前,它可以是這樣的..

+0

感謝您的答案,我想通了,原來是一個問題與安裝在錯誤的目錄中的auto_complete,PIP做錯了! – Aurora