假设我有两个模型,A
和B
,其中A
可以有多个B
与之相关。给定A
个对象的QuerySet,如何创建包含与所有这些B
个对象相关的所有A
个对象的QuerySet?
对于那些碰巧说LINQ的人,我想要这样的事情:
queryableOfA.SelectMany(a => a.Bs)
更好的是如何链接A - >的示例B - > C,即以下LINQ:
queryableOfA.SelectMany(a => a.Bs).SelectMany(b => b.Cs)
(通过C
返回与所有A
个对象相关的所有B
个对象的“查询集”
答案 0 :(得分:4)
对于A对象的查询集,您可以执行“in”启动查询:
B.objects.filter(a__in=MyQueryset)
如果要查找通过B到A相关的所有C对象,则需要通过双下划线语法来跟踪关系。类似的东西:
C.objects.filter(b__a__in=MyAQueryset)