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.
Другие публикации из блога
В чем отличие ref() от reactive() во Vue?
Идея в том что ref() задумывался для обозначения реактивных примитивов, а reactive() для реактивных объектов.
cons…
Подробнее
Как выбрать текущего пользователя в поле ForeignKey в админке Django по-умолчанию
Предположим у вас есть модель которая ассоциируется с каким-то пользователем через поле ForeignKey. По-умолчанию в спис…
Подробнее
Как решить проблему с Git: "Commit your changes or stash them before you can merge"
Самый простой способ – отменить локальные изменения:
git reset --hard
или
git checkout -t -f remot…
Подробнее
Склонения для минут\минуты, год\лет в JavaScript
See the Pen
Untitled by Denis (@m5dev)
on CodePen.
Подробнее
Docker контейнер бесконечно перезагружается (Docker Container keeps on restarting again and again)
Проблема:
После билда Docker контейнер работает некоторое время и после уходит в бесконечную перезагрузку.
Решение:…
Подробнее
Как переопределить вывод --------- в админке Django?
Добавьте в admin.py следующие строки:
Пустые поля в CharField, TextField etc
@admin.register(YourModel)
class …
Подробнее