Встречается на собеседованиях • сегодня
Был ли опыт работы с подзапросами (Subquery, Exists, F, Q) в Django ORM
Да, работал с подзапросами в Django ORM.
Subquery — полезен для вложенных запросов. Например, выборка последнего комментария для каждого поста:
python
from django.db.models import OuterRef, Subquery
comments = Comment.objects.filter(post=OuterRef('pk')).order_by('-created_at')
posts = Post.objects.annotate(
last_comment_text=Subquery(comments.values('text')[:1])
)Exists — проверяет наличие связанных записей. Например, посты с комментариями:
python
from django.db.models import Exists
posts = Post.objects.annotate(
has_comments=Exists(Comment.objects.filter(post=OuterRef('pk')))
).filter(has_comments=True)F() — для сравнения полей одной модели:
python
from django.db.models import F
Product.objects.filter(price__gt=F('discounted_price'))Q() — для сложных условий:
python
from django.db.models import Q
User.objects.filter(Q(is_active=True) | Q(last_login__gte=timezone.now() - timedelta(days=30)))Подзапросы помогают избегать N+1 проблем и оптимизировать запросы.

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