【问题标题】:Crossed import in djangodjango中的交叉导入
【发布时间】:2011-02-26 20:08:47
【问题描述】:
例如,我有 2 个应用程序:alpha 和 beta
在 alpha/models.py 从 beta.models 导入模型
并在 beta/models.py 中从 alpha.models 导入模型
manage.py validate 说 ImportError: cannot import name ModelName
如何解决这个问题?
【问题讨论】:
标签:
python
django
django-models
import
【解决方案1】:
过去我遇到过这个问题,有两个模型相互引用,即使用ForeignKey 字段。根据Django documentation,有一个简单的方法来处理它:
如果您需要在尚未定义的模型上创建关系,您可以使用模型的名称,而不是模型对象本身:
所以在您的 beta/models.py 模型中,您将拥有:
class BetaModel(models.Model):
alpha = models.ForeignKey('alpha.AlphaModel')
...
此时,不需要从 alpha.models 导入。