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.
Другие публикации из блога
Как создать Django app в определенной папке
Предположим структура вашего проекта выглядит следующим образом:
apps/ config/ db.sqlite3 manage.py* media/ r…
Подробнее
Не получается установить Pygame в Windows 10
При попытке установить pip install pygame Pygame в Windows 10 возникает ошибка.
Для решения проблемы установите dev …
Подробнее
При билде Docker-контейнера выдает: WARNING: Running pip as the 'root' user
Самый простой способ избавиться от warning'a - это добавить в Dockerfile строку:
ENV PIP_ROOT_USER_ACTION=ignore
…
Подробнее
Inline цикл for с условиями в Python
my_list = [1, 2, 3, 4, 5]
print([item for item in my_list if item > 2])
# [3, 4, 5]
Подробнее
Проблемы с file-loader в Webpack 5
file-loader не работает в Webpack 5, замените его на:
{
test: /\.(gif|png|jpe?g|svg)$/i,
type: 'asset/re…
Подробнее
Сохранить credentials GitHub на сервере
Чтобы каждый раз при git pull не приходилось заново указывать ваш логин и пароль (access token) на GitHub перед любой м…
Подробнее