Django: как получить связанные объекты queryset?


Предположим, что у меня есть две модели:

A:
    pass

B:
    a = foreign_key(A)

Теперь у меня есть набор запросов

bs = B.objects.filter(...)

Я хочу получить все a из bs, что означает каждый a, на который ссылается b, для которого b находится в bs.

Есть ли способ сделать это? Я думаю, что в sql простое соединение подойдет, я не знаю, поддерживает ли это django.

1 6

1 ответ:

Вы можете использовать __in:

A.objects.filter(b__in=bs)

Или вы можете вообще не создавать BS queryset, а следовать соотношению непосредственно в вашем запросе:

A.objects.filter(b__bcondition=bvalue)