Встречается на 4% собеседований по Python
Зачем нужен prefetch_related в Django
prefetch_related в Django оптимизирует загрузку связанных объектов для отношений ManyToMany и обратных ForeignKey, уменьшая количество SQL-запросов. В отличие от select_related (который использует JOIN), prefetch_related делает отдельные запросы, а затем связывает данные на уровне Python.
Пример:
python
# Без prefetch_related: N+1 запросов
books = Book.objects.all()
for book in books:
print(book.authors.all()) # Отдельный запрос для каждой книги
# С prefetch_related: 2 запроса
books = Book.objects.prefetch_related('authors')
for book in books:
print(book.authors.all()) # Данные уже загруженыИспользуйте prefetch_related, когда:
- Есть отношения
ManyToManyили обратныеForeignKey - Нужно загрузить несколько уровней связей
- Требуется дополнительная фильтрация через
Prefetch()

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы