【问题标题】: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 导入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 2010-11-22
    相关资源
    最近更新 更多