Встречается на собеседованиях • сегодня
В чем разница между annotate и aggregate в Django
Оба метода используются для выполнения агрегаций, но работают по-разному:
annotate():
- Добавляет вычисляемое поле к каждому объекту QuerySet
- Результат доступен для каждого объекта отдельно
- Используется, когда нужно получить агрегированные данные для каждой записи
aggregate():
- Возвращает словарь с агрегированными значениями по всему QuerySet
- Вычисляет общие итоги (суммы, средние и т.д.)
- Возвращает только один результат для всего набора данных
Пример:
python
from django.db.models import Count, Avg
# annotate - кол-во заказов для каждого клиента
clients = Client.objects.annotate(order_count=Count('orders'))
# aggregate - среднее кол-во заказов по всем клиентам
stats = Client.objects.aggregate(avg_orders=Avg('orders'))Ключевое отличие: annotate модифицирует QuerySet, добавляя поля, а aggregate возвращает финальный результат агрегации.

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