ORM Django составление запросов
Вопрос о порядке составления сложных запросов к БД на джанге. У меня есть три модели:
основная модель объекта, который имеет отношения к другим моделям
class Res(models.Model): name = models.CharField(verbose_name='Наименование', max_length=20) related_rich = models.ForeignKey(Rich, on_delete=models.DO_NOTHING) related_registration = models.ForeignKey(Registration, on_delete=models.DO_NOTHING)
и две другие модели:
сlass Rich(models.Model): name = models.CharField(max_length=30, verbose_name='Наименование', unique=True) class Registration(models.Model): name = models.CharField(max_length=30, verbose_name='Наименование', unique=True)
В проекте есть представления в виде списков по всем моделям. С первой моделью все более или менее понятно - чтобы вытащить связанные объекты мы просто выбираем команду select_related. То при выводе списка Rich мне недостаточно просто вывести prefetch_related('Res'), необходимо также вывести объекты Registration которые имеют отношение к связанным с Rich объектам Res. Подскажите каким образом необходимо составить корректный запрос к БД чтобы вытащить всю информацию одним запросом.
Вам необходимо сделать Prefetch
from django.dЬ.models import Prefetch
Rich.objects.all().prefetch_related(
Prefetch('res_set', queryset=Res.objects.all().select_related('related_registration'))
)