说我有以下型号:
class A(models.Model):
pass
class B(models.Model):
a = models.ForeignKey(A, related_name='bs')
如果我想检索特定B
所拥有的A
一组,请执行以下操作:
a = A.objects.get(pk=[whatever])
a.bs.all()
现在,如果我添加以下模型:
class C(models.Model):
b = models.ForeignKey(B, related_name='cs')
如何获取特定C
具有的所有A
?我试过了:
a = A.objects.get(pk=[whatever])
a.bs.cs.all()
但它不起作用。这可能吗?如果是的话,我该如何实现呢?
答案 0 :(得分:2)
你可以这样做:
cs = C.objects.filter(b__a__pk=[whatever])
答案 1 :(得分:1)
你可以这样做:
[b.cs.all() for b in A.objects.get(pk=[whatever]).bs.all()]
或者更合适的方式,通过像这样的C对象:
C.objects.filter(b__a__pk=[whatever])