Django-从父级查询许多FK模型

时间:2018-09-04 10:38:52

标签: python django foreign-keys

给出以下伪代码:

class A(models.Model)

class B(models.Model)
    a = models.FK(A)

class C(models.Model)
    b = models.FK(B)

class D(models.Model)
    b = models.FK(B)

如果我具有A的PK,我该如何检索每个子模型的所有相关实例? (B,C和D)。

我希望这是有道理的。

谢谢

1 个答案:

答案 0 :(得分:0)

在我看来,唯一的办法就是循环全部。 定义一些相关名称,您可以像这样尝试。 A的伪pk = pk

class A(models.Model):

class B(models.Model):
    a = models.FK(A, related_name='related_B')

class C(models.Model):
    b = models.FK(B, related_name='related_C')

class D(models.Model):
    b = models.FK(B, related_name='related_D')


a = A.objects.get(pk=pk)
results = []
results.append(a.related_B.all())
for item in a.related_B.all():
    results.append(item.related_C.all())
    results.append(item.related_D.all())

和结果现在具有A的每个子模型的所有相关实例。 圈出此帮助