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

Что такое объект класса Prefetch в Django

Prefetch в Django — это объект, позволяющий тонко настраивать предварительную загрузку связанных объектов (prefetch_related) с возможностью фильтрации и дополнительных условий.

Пример:

python
from django.db.models import Prefetch

# Загрузка только активных комментариев для каждой статьи
articles = Article.objects.prefetch_related(
    Prefetch('comments', queryset=Comment.objects.filter(is_active=True))
)

Ключевые моменты:

  • Позволяет использовать отдельный queryset для связанных объектов.
  • Можно переименовывать атрибут с помощью to_attr.
  • Работает только с prefetch_related, а не с select_related.

Фильтрация с to_attr:

python
Prefetch('comments', queryset=Comment.objects.filter(is_active=True), to_attr='active_comments')

Теперь active_comments будет доступен как список отфильтрованных комментариев.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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