2014-01-15 38 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

正如我在评论中提到的那样,您的窗体和模型文件之间存在循环依赖关系。你要么需要重构来消除循环,要么你真的不能这样做,你必须将其中一个导入移动到它所使用的函数中。

相关问题