170 похожих чатов

Подскажите пожалуйста, есть модель Group(fk Module), Module(fk Lesson), Lesson(fk Teacher).

как получить имея инстанс группы всех учителей которые ведут уроки группы?

12 ответов

11 просмотров

погугли что такое prefetch related и select related вот неплохое видео https://www.youtube.com/watch?v=5-UN4YPDDQc

Алексей-Святкин Автор вопроса

вот так вот вроде работает, но похоже на костыль. lessons = Lesson.objects.filter(module__group= group_instance) teachers = list(set(Teacher.objects.filter(lesson__in=lessons))) Подскажите, пожалуйста, как правильно это сделаать?

Тут можно использовать distinct

Алексей-Святкин Автор вопроса

а в целом по другому как-то можно? типо через prefetch?

А какую задачу путаешься решить?

Алексей-Святкин Автор вопроса

есть модель Group, Module(fk Group), Lesson(fk Module, fk Teacher). как получить имея инстанс группы всех учителей которые ведут уроки группы?

Алексей-Святкин Автор вопроса

вот я построил такой запрос b = Group.objects.prefetch_related("modules").prefetch_related("modules__lessons").get(pk=1946) онотрабатывает. Но как получить отсюда все уроки группы? подсжкаите пожалуйста, а потом получить еще уникальный список преподавателей?

Алексей-Святкин Автор вопроса

ну на дистинкт я уже поменял, но вообще через prefetch реально как-то достать всех учителей группы, которые связаны через уроки в модулях группы?

Алексей-Святкин Автор вопроса

вот я построил такой запрос b = Group.objects.prefetch_related("modules").prefetch_related("modules__lessons").get(pk=1946) онотрабатывает. Но как получить отсюда все уроки группы? подсжкаите пожалуйста, а потом получить еще уникальный список преподавателей?

А почему так хочется через префетч делать?

Алексей-Святкин Автор вопроса

Чтобы разобраться. Он же джойнит таблицу группа, модуль, занятие, преподаватель по идее. Тоесть получить всех учителей группы должно быть не трудно

префетч, не джойнит, он делает отдельные запросы

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
Кто создает тут ботов для телеграмм групп ?
Antskup
8
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
14
Я хочу запустить свой проект в тг. Что-то между пирамидой и майнилкой. Еще подобного ничего не было. Уникальная идея. Нужен именно не бот, а приложение. С ввод, выводом тон...
Павел А.
6
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
How to create an OS in C? what to study?
Linus
18
Карта сайта