假设我有两个模型:
A:
pass
B:
a = foreign_key(A)
现在,我有一个查询集
bs = B.objects.filter(...)
我想获取bs
的所有a
,也就是b
引用的每一个a
其中 b
在 bs
中。
有办法吗?我想在 sql 中,一个简单的连接就可以了,我不知道 django 是否支持这个。
最佳答案
你可以使用__in
:
A.objects.filter(b__in=bs)
或者您可以完全避免创建 bs 查询集,并直接在查询中遵循关系:
A.objects.filter(b__<bcondition>=<bvalue>)
例如,如果用于创建 bs
的过滤器是:
bs = B.objects.filter(name="Banana")
然后您可以使用以下方法过滤 A
对象:
A.objects.filter(b__name="Banana")
请记住,您可以通过多种不同的方式进行过滤,并且过滤功能非常广泛,因此值得查看 filter documentation
关于python - Django:如何获取查询集的相关对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197425/