Django 努力避免循环进口
最近我把一个应用分成了两个独立的应用,因为我有15个以上的模型。我得到了“循环导入错误”。为了解决这个问题,我试着写下:Django 努力避免循环进口,django,django-models,Django,Django Models,最近我把一个应用分成了两个独立的应用,因为我有15个以上的模型。我得到了“循环导入错误”。为了解决这个问题,我试着写下: from django.db import models class App1Model(models.Model): app2model = models.ForeignKey(app2.App2Model) 我得到的错误是:“NameError:name'app2'未定义”。但app2已正确添加到已安装的应用程序和路径中 project -app1
from django.db import models
class App1Model(models.Model):
app2model = models.ForeignKey(app2.App2Model)
我得到的错误是:“NameError:name'app2'未定义”。但app2已正确添加到已安装的应用程序和路径中
project
-app1
--models.py
-app2
--models-py
ForeignKey
可以将字符串作为参数,即models.ForeignKey('app2.App2Model')
。当然,您应该首先尝试设计代码以避免任何循环依赖关系。您仍然需要一个导入语句
import app2.App2Model
但是,如果app2导入app1,您将得到一个如您所述的错误。我同意Cat Plus关于设计代码以避免循环依赖的观点,但您不能:
try:
import app.model
except ImportError:
pass
但是如果您的代码中需要模型,会发生什么呢。我有足够多的函数需要一个模型或另一个模型的函数?@HansdeJong不会建立循环关系。如果确实需要,请使用
get_model
或函数级导入。