Встречается на собеседованиях • сегодня

Использовал prefetch_related как класс или метод

prefetch_related в Django — это метод QuerySet, а не класс. Он используется для оптимизации запросов при работе с обратными связями (ForeignKey, ManyToMany) или связанными объектами, уменьшая количество SQL-запросов.

Пример:

python
from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='books')

Без prefetch_related — N+1 проблема

authors = Author.objects.all()
for author in authors:
print(author.books.all()) # Отдельный запрос для каждого автора

С prefetch_related — 2 запроса

authors = Author.objects.prefetch_related('books')
for author in authors:
print(author.books.all()) # Данные уже загружены

text

Ключевое отличие от `select_related`: `prefetch_related` делает отдельный запрос для связанных данных и объединяет их в Python, а не JOIN в SQL. Подходит для ManyToMany и обратных ForeignKey.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы