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.
Другие публикации из блога
Как выбрать текущего пользователя в поле ForeignKey в админке Django по-умолчанию
Предположим у вас есть модель которая ассоциируется с каким-то пользователем через поле ForeignKey. По-умолчанию в спис…
Подробнее
Как получить данные из url без модуля requests в Python
from urllib.request import urlopen, Request
url = 'https://jsonplaceholder.typicode.com/posts'
# url = 'https://g…
Подробнее
Зачем нужен Makefile?
Makefile – это очень удобная штука, которая облегчит вам жизнь.
Предположим у вас есть проект и для его деплоя…
Подробнее
Как создать Django app в определенной папке
Предположим структура вашего проекта выглядит следующим образом:
apps/ config/ db.sqlite3 manage.py* media/ r…
Подробнее
В чем разница между HTTP методами POST vs PUT vs PATCH?
Прежде всего внимательно ознакомьтесь с определением каждого HTTP метода в статье HTTP request methods.
Теперь кратк…
Подробнее
Проверить принадлежность пользователя к группе в Django
Принадлежит к одной группе:
<объект_пользователя>.groups.filter(name='Имя_группы').exists()
Принадлежит к группам…
Подробнее