Встречается на собеседованиях • сегодня
Какой самый сложный queryset писал в Django
Самый сложный QuerySet обычно связан с оптимизацией сложных запросов, включающих аннотации, агрегации, подзапросы или Prefetch. Например, запрос для подсчета комментариев к постам с фильтрацией и сортировкой:
python
from django.db.models import Count, Subquery, OuterRef
from blog.models import Post, Comment
# Подсчет активных комментариев для каждого поста с аннотацией
posts = Post.objects.annotate(
active_comments_count=Count(
'comments',
filter=Q(comments__is_active=True)
),
last_comment_date=Subquery(
Comment.objects.filter(
post=OuterRef('pk'),
is_active=True
).order_by('-created_at').values('created_at')[:1]
)
).select_related('author').prefetch_related(
Prefetch(
'comments',
queryset=Comment.objects.filter(is_active=True),
to_attr='active_comments'
)
).order_by('-last_comment_date')Ключевые сложности:
- Аннотация с фильтром (
active_comments_count) - Подзапрос для получения даты последнего комментария (
Subquery) - Оптимизация через
select_relatedиPrefetchс фильтрацией - Сортировка по вычисляемому полю
Такой запрос заменяет несколько отдельных запросов и N+1 проблему, но требует глубокого понимания ORM.

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