我在两个文件中有两个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)
但是,这会导致循环导入 - 是否有更好的方法来组织此操作以防止这种情况发生?
答案 0 :(得分:2)
明确涵盖in the documentation。无需导入模型;使用格式" app_name.ModelName"作为外国关键目标。
def Child(models.Model):
parent = models.ForeignKey("parent.Parent")
另请注意,也无需从Parent显式引用Child。据推测,当您从父级创建子级时,您需要一个引用父级的子级;所以你会做self.child_set.create()
。