Предварительная выборка 3 уровня иерархии объектов - PullRequest
0 голосов
/ 21 июня 2019

У меня следующая структура модели.Если я хочу предварительно выбрать объекты ModelC, содержащие объекты ModelB, я делаю ModelC.objects.prefetch_related('ModelB'). Но как я могу получить объекты ModelA, содержащиеся в ModelB?Я споткнулся что-то вроде ModelC.objects.prefetch_related('ModelB').prefetch_related('ModelA')., но не работает

class ModelA:

class ModelB:
      ModelA = models.ForeignKey(
            ModelA, on_delete=models.CASCADE, db_constraint=False)

class modelC:
    ModelB = models.ManyToManyField('ModelB', blank=True)

1 Ответ

3 голосов
/ 21 июня 2019

Вы можете попробовать вот так:

ModelC.objects.prefetch_related('ModelB__ModelA')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...