2014-01-15 39 views
3

我使用forms.ModelChoiceField有從一個特定的模式項加載的選擇:導入錯誤:無法導入名稱<model_class>

from order.models import Region 

class CheckoutForm(forms.Form): 
    area = forms.ModelChoiceField(queryset=Region.objects.all(),label=("Area")) 

我現在面臨的問題是,進口從應用程序的類名時。我得到的錯誤:

ImportError: cannot import name Region

請沒有在外殼獨立測試時,它是from order.models import Region工作。

任何想法是什麼原因造成的?

Traceback (most recent call last): 
    File "/home/salma/venv/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 92, in inner_run 
    self.validate(display_num_errors=True) 
    File "/home/salma/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 280, in validate 
    num_errors = get_validation_errors(s, app) 
    File "/home/salma/venv/local/lib/python2.7/site-packages/django/core/management/validation.py", line 35, in get_validation_errors 
    for (app_name, error) in get_app_errors().items(): 
    File "/home/salma/venv/local/lib/python2.7/site-packages/django/db/models/loading.py", line 166, in get_app_errors 
    self._populate() 
    File "/home/salma/venv/local/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate 
    self.load_app(app_name) 
    File "/home/salma/venv/local/lib/python2.7/site-packages/django/db/models/loading.py", line 96, in load_app 
    models = import_module('.models', app_name) 
    File "/home/salma/venv/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/salma/Projects/Morabiz/Saludable/saludable_django/landing/models.py", line 2, in <module> 
    from order.models import Dish 
    File "/home/salma/Projects/Morabiz/Saludable/saludable_django/order/models.py", line 4, in <module> 
    from order.forms import RegistrationFormNoUserName 
    File "/home/salma/Projects/Morabiz/Saludable/saludable_django/order/forms.py", line 7, in <module> 
    from order.models import Region 
ImportError: cannot import name Region 
+1

請發佈追溯到您的錯誤 – sk1p

+0

可能是一個循環導入。模型是否導入表單模塊? –

+0

就像不是:你想將'Region.objects.all'(_no_ parens)傳遞給你的'ModelChoiceField' - 否則你將會有失效的數據。 –

回答

11

正如我在評論中提到的那樣,您的窗體和模型文件之間存在循環依賴關係。你要麼需要重構來消除循環,要麼你真的不能這樣做,你必須將其中一個導入移動到它所使用的函數中。

相關問題