Django:如何获取查询集的相关对象?

dsp*_*pjm 8 python django django-models django-queryset

假设我有两个模型:

A:
    pass

B:
    a = foreign_key(A)
Run Code Online (Sandbox Code Playgroud)

现在,我有一个查询集

bs = B.objects.filter(...)
Run Code Online (Sandbox Code Playgroud)

我想得到所有的bs,这意味着每个a由b引用,其中b在bs中.

有办法吗?我想在sql中,一个简单的连接会做,我不知道django是否支持这个.

Dan*_*man 17

你可以使用__in:

A.objects.filter(b__in=bs)
Run Code Online (Sandbox Code Playgroud)

或者您可以完全避免创建bs查询集,并直接在查询中遵循关系:

A.objects.filter(b__bcondition=bvalue)
Run Code Online (Sandbox Code Playgroud)