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.
Ниже пример создания виртуал…
Подробнее
Как сериализовать объекты в Django?
# views.py
from django.http import JsonResponse
from django.core.serializers import serialize
import json
from …
Подробнее
Как получить случайный объект из базы данных в Django?
YourModel.objects.order_by('?')[0]
или
YourModel.objects.order_by('?').first()
Подробнее
Как запустить, перезапустить, остановить, узнать статус Nginx в Ubuntu?
Systemctl: start\restart\stop\status
sudo systemctl restart nginx
sudo systemctl start nginx
sudo systemctl sto…
Подробнее
Выводим Inline формы в админке Django в зависимости от группы в которой находится пользователь
Начиная с версии Django 3.* доступен метод get_inlines.
Допустим мы хотим показать Inline форму если пользователь на…
Подробнее
В чем разница между HTTP методами POST vs PUT vs PATCH?
Прежде всего внимательно ознакомьтесь с определением каждого HTTP метода в статье HTTP request methods.
Теперь кратк…
Подробнее