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

Python Middle Без компании
Что такое объект класса Prefetch в Django
Ответы
`Prefetch` в Django — это объект, позволяющий тонко настраивать предварительную загрузку связанных объектов (prefetch_related) с возможностью фильтрации и дополнительных условий. **Пример:** ``` 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`:** ``` Prefetch('comments', queryset=Comment.objects.filter(is_active=True), to_attr='active_comments') ``` Теперь `active_comments` будет доступен как список отфильтрованных комментариев.