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.
Другие публикации из блога
Как создать virtualenv с разными версиями Python в Windows
Прежде всего у вас должны быть установлены разные версии Python в системе + virtualenv.
Ниже пример создания виртуал…
Подробнее
Что означает managed=False в models.py Django?
Предположим что вы используете несколько баз данных в вашем проекте, одна из них основная, другая уже содержит какие-то…
Подробнее
Как решить проблему с Git: "Commit your changes or stash them before you can merge"
Самый простой способ – отменить локальные изменения:
git reset --hard
или
git checkout -t -f remot…
Подробнее
Как "сжать" список любой вложенность итеративно в Python?
Подробнее
Разница между операторами "is" и "==" в Python
Оба оператора is и == предназначены для сравнения объектов в Python.
Оператор == сравнивает два значения.
Операто…
Подробнее
Установка программ с помощью winget
Иногда возникают проблемы при установке ПО на Win 11 через стандартный installer. Поэтому проще воспользоваться winget.…
Подробнее