Выполнял ли сложные запросы в Django ORM
Python
Junior
Без компании
Выполнял ли сложные запросы в Django ORM
Ответы
Да, работал с Django ORM для сложных запросов. Использовал:
- **annotate()** и **aggregate()** для агрегации данных
- **Q-объекты** для сложных условий
- **select_related()** и **prefetch_related()** для оптимизации запросов
- **Subquery** и **OuterRef** для подзапросов
- **F()** для операций с полями модели
Пример сложного запроса:
```
from django.db.models import Count, Q, F, Subquery, OuterRef
# Подсчет активных заказов с аннотацией и подзапросом
active_orders = Order.objects.filter(
Q(status='active') | Q(created_at__gte=F('updated_at'))
).annotate(
total_items=Count('items'),
latest_price=Subquery(
PriceHistory.objects.filter(
product_id=OuterRef('product_id')
).order_by('-created_at').values('price')[:1]
)
).select_related('customer').prefetch_related('items')
```
Также работал с **raw SQL** через `raw()` и **Window functions** для аналитики.