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

Был ли опыт использования prefetch_related, exists и подзапросы (Subquery) в Django

Да, опыт есть.

prefetch_related – оптимизирует загрузку связанных объектов (ManyToMany, ForeignKey) одним запросом, уменьшая количество обращений к БД:

python
books = Book.objects.prefetch_related('authors')  # Загружает авторов для всех книг сразу

exists() – проверяет наличие записей без загрузки данных, эффективнее, чем if queryset:

python
if Book.objects.filter(title='Django').exists():  # Быстрая проверка

Subquery – позволяет встраивать подзапросы в основной запрос, например, для аннотаций:

python
from django.db.models import OuterRef, Subquery  
latest_comments = Comment.objects.filter(book=OuterRef('pk')).order_by('-created_at')  
books = Book.objects.annotate(  
    last_comment=Subquery(latest_comments.values('text')[:1]  
)  

Использование этих методов помогает избегать N+1 проблем и оптимизировать запросы.

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

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

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

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