Aggregation - обрабатывает все результаты запроса (queryset).
Предположим мы хотим получить среднюю цену всех товаров в магазине:
Product.objects.aggregate(avg_price=Avg('price'))
# {'avg_price': 1596.75}
Annotation - обрабатывает значение каждого значения (item) в запросе (queryset) отдельно.
Посчитаем количество тегов в каждой публикации блога:
q = Blog.objects.annotate(count_tags=Count('tag'))
q[0].count_tags
# 3
q[1].count_tags
# 7
Автор видео Pretty Printed.
Другие публикации из блога
Как исправить: fix ValueError: Exceeds the limit (4300 digits) for integer string conversion
import sys
sys.set_int_max_str_digits(0)
Подробнее
Признаки курсов по программированию на которые не стоит тратить своё время
Поговорим о курсах где обещают научить программировать и трудоустроить на большую зарплату, а по факту просто продают "…
Подробнее
Django\Nginx 403 Forbidden Error при доступе к media
Скорее всего ошибка возникает из-за неверных прав доступа к папке media и её поддиректориям. Исправляется командой:
…
Подробнее
Как сериализовать объекты в Django?
# views.py
from django.http import JsonResponse
from django.core.serializers import serialize
import json
from …
Подробнее
Ошибка Docker-compose ERROR [internal] booting buildkit при билде
Желательно что бы Docker был установлен через snap. Для решения проблемы попробуйте обновить snap Docker до последней…
Подробнее
Что такое сериализация (serialization) в Django?
Сериализация – это механизм перевода моделей Django в другие форматы, обычно текстовые (XML, JSON...).
Более под…
Подробнее