如果不导入相关模型本身,相关对象引用将不起作用

Related object reference does not work without importing the related model itself

我的应用程序中有 2 个模型 -

在 models/parent.py 我有 -

 from django.db import models
 class Parent(models.Model): 
       class Meta:
          db_table = "parent_table"
       start_date = models.DateField()
       end_date = models.DateField()

在 models/child.py 我有 -

from django.db import models
from models.parent import Parent
class Child(models.Model): 
   class Meta:
      db_table = "child_table"
   some_ref = models.ForeignField(Parent)

现在在 models/parent.py 中,我将 属性 定义为 -

@property
def referred_values(self):
 return self.child_set.all()

它给我错误 -

AttributeError: 'Parent' object has no attribute 'child_set'

但是如果我在我的应用程序的任何文件中导入 Child class,它就可以正常工作。 这是预期的行为还是我在这里遗漏了什么?

提前致谢。

直接设置related_name就好了

some_ref = models.ForeignField(Parent, related_name='childs')

并使用 child_set 的子代(更多英语)

您还可以使用:

 some_ref = models.ForeignField(to='parent_app.Parent', related_name='childs')

并且您不需要将父模型导入子模型

另外:

class Parent(models.Model): 

代替

 class Parent:

但是在你的问题中,我想你忘记了将 Child 添加到 models/__init__.py