最近我将一个应用程序拆分为两个独立的应用程序,因为我有15个以上的模型。我收到了“循环导入错误”。为了解决这个问题,我尝试写这个:
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
答案 0 :(得分:13)
ForeignKey
可以将字符串作为参数,即models.ForeignKey('app2.App2Model')
。当然,您应该尝试设计代码以避免任何循环依赖。
答案 1 :(得分:2)
我同意Cat Plus Plus关于设计代码以避免循环依赖,但是你应该不能:
try:
import app.model
except ImportError:
pass
答案 2 :(得分:1)
您仍然需要导入声明
import app2.App2Model
但是如果app2导入了app1,你会收到类似你提到的错误。