在 django 1.7 和 python 2.7 中嵌套导入模型
nested import of models in django 1.7 and python 2.7
这个问题的标题可能是confussing.I不知道应该给这个问题起什么标题。
我有两个模型文件 ==> models.py 在应用程序 a 和 models.py 在应用程序 b
models.py 在应用 a 中有 class A
models.py 在应用 b
中有 class B
两个 类 扩展 django.db.models.Model
即这些 类 正在制作数据库表
我想从应用程序 a models.py import class A
导入应用程序 b 中的 models.py class B
。
我想说的是类两个都在互相利用
如果我这样编码:
models.py 在应用 a==>
from b.models import B
models.py 在应用 b ==>
from a.models import A
然后我收到未定义 B 的导入错误。
如何在两个文件中同时导入 类?
您可以在不导入的情况下为模型创建外键。而不是模型 class 传递带有应用程序名称和模型名称的字符串。见 the docs for ForeignKey:
class B(models.Model):
a = models.ForeignKey('a.A')
如果您想在代码中的某处访问此类模型,请将其导入函数中:
class B(models.Model):
def some_method(self):
from a.models import A
...
这是一个循环依赖问题。你检查 Circular dependency in Python 答案。
简而言之,您应该尝试更改您的 class 组织以防止出现这种情况,或者您可以在函数内使用导入来避免导入错误。
这个问题的标题可能是confussing.I不知道应该给这个问题起什么标题。
我有两个模型文件 ==> models.py 在应用程序 a 和 models.py 在应用程序 b
models.py 在应用 a 中有 class A
models.py 在应用 b
class B
两个 类 扩展 django.db.models.Model
即这些 类 正在制作数据库表
我想从应用程序 a models.py import class A
导入应用程序 b 中的 models.py class B
。
我想说的是类两个都在互相利用
如果我这样编码: models.py 在应用 a==>
from b.models import B
models.py 在应用 b ==>
from a.models import A
然后我收到未定义 B 的导入错误。
如何在两个文件中同时导入 类?
您可以在不导入的情况下为模型创建外键。而不是模型 class 传递带有应用程序名称和模型名称的字符串。见 the docs for ForeignKey:
class B(models.Model):
a = models.ForeignKey('a.A')
如果您想在代码中的某处访问此类模型,请将其导入函数中:
class B(models.Model):
def some_method(self):
from a.models import A
...
这是一个循环依赖问题。你检查 Circular dependency in Python 答案。
简而言之,您应该尝试更改您的 class 组织以防止出现这种情况,或者您可以在函数内使用导入来避免导入错误。