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?
YourModel.objects.order_by('?')[0]
или
YourModel.objects.order_by('?').first()
Подробнее
В чем отличие ref() от reactive() во Vue?
Идея в том что ref() задумывался для обозначения реактивных примитивов, а reactive() для реактивных объектов.
cons…
Подробнее
Ошибка при остановке Docker контейнера вида: ERROR: for *** cannot stop container: *** permission denied
Ошибка возникает при запуске и остановке контейнера, а также при попытке его повторной сборки. Имеет примерно такой вид…
Подробнее
Как предотвратить билд образа Docker из кэша?
При билде образа Docker создает кэши что не всегда бывает удобно и занимает много места на сервере. Для экономии места …
Подробнее
JavaScript fetch с простой HTTP аутентификацией
Самый простой способ протестировать ваш API с базовой аутентификацией (логин, пароль).
Аналогичным образом работ…
Подробнее
101 вопрос (с ответами) на которые должен ответить Python-разработчик
1. Что такое Python?
2. В каком году написана первая статья про Python?
3. Какие типы данных …
Подробнее