Django1.7和python2.7中模型的嵌套导入

2024-06-10 16:01:15 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题的题目可能有点混乱,我不知道该给这个题目起什么题目。在

我有两个模型文件==>;模型.py应用程序a和模型.py应用程序b中 模型.py应用程序a中有class A 模型.py在应用程序b中有class B

这两个类都扩展了django.db.models.Model,即这些类正在生成数据库表

我想从模型.py从从中导入class B的应用程序a模型.py应用程序b中

我想说的是,这两个类都在互相使用。在

如果我这样编码: 模型.py应用程序a==>

from b.models import B

在模型.py应用程序b==>

^{pr2}$

然后我得到的导入错误是B没有定义。在

如何在两个文件中导入这两个类?在


Tags: 文件djangofrompy模型importgt数据库
2条回答

这是一个循环依赖问题。你的答案是Circular dependency in Python。在

简而言之,您应该尝试更改类组织以防止这种情况发生,或者您可以在函数中使用导入来避免导入错误。在

您可以在不导入模型的情况下创建外键。传递一个带有app name和model name的字符串,而不是model类。见the docs for ForeignKey

class B(models.Model):

    a = models.ForeignKey('a.A')

如果要访问代码中某个位置的此类模型,请将其导入函数中:

^{pr2}$

相关问题 更多 >