Как оптимизировать обратный запрос внешнего ключа в DjangoORM?

У меня есть следующие отношения:

enter image description here

Я пытаюсь выбрать все задания со всеми экземплярами и их транспортными средствами. Однако это очень медленный запрос.

Насколько я понимаю, я должен использовать prefetch_related, потому что это отношение OneToMany.

Моя модель InstanceModel имеет обратный внешний ключ к Task:

task = models.ForeignKey(TaskModel, on_delete=models.CASCADE, related_name="instances")

Я попытался выполнить подобный запрос в DjangoORM:

TaskModel.objects.filter(department_id=department_id).prefetch_related("instances", "instances__vehicle")

Но это очень медленно. Есть ли способ оптимизировать это или отношения по своей природе ограничивают этот шаблон запроса?

Запуск в Django 3.x

Вернуться на верх