试图避免循环导入

时间:2011-06-08 20:50:23

标签: django django-models

最近我将一个应用程序拆分为两个独立的应用程序,因为我有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

3 个答案:

答案 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,你会收到类似你提到的错误。