防止相关对象的循环导入

时间:2017-02-05 22:13:36

标签: django python-3.x

我在两个文件中有两个django模型:

parent.py

from child import Child
from django.db import models

def Parent(models.Model):
    name = models.CharField()

    def createChild(self):
        return Child()

child.py

from parent import Parent
from django.db import models

def Child(models.Model):
    parent = models.ForeignKey(Parent)

但是,这会导致循环导入 - 是否有更好的方法来组织此操作以防止这种情况发生?

1 个答案:

答案 0 :(得分:2)

明确涵盖in the documentation。无需导入模型;使用格式" app_name.ModelName"作为外国关键目标。

def Child(models.Model):
    parent = models.ForeignKey("parent.Parent")

另请注意,也无需从Parent显式引用Child。据推测,当您从父级创建子级时,您需要一个引用父级的子级;所以你会做self.child_set.create()