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.
Другие публикации из блога
Что означает managed=False в models.py Django?
Предположим что вы используете несколько баз данных в вашем проекте, одна из них основная, другая уже содержит какие-то…
Подробнее
Как обновить uv Python в Windows 11?
uv --version
uv self update
Подробнее
Проверить принадлежность пользователя к группе в Django
Принадлежит к одной группе:
<объект_пользователя>.groups.filter(name='Имя_группы').exists()
Принадлежит к группам…
Подробнее
Как получить данные из url без модуля requests в Python
from urllib.request import urlopen, Request
url = 'https://jsonplaceholder.typicode.com/posts'
# url = 'https://g…
Подробнее
Django не отображает статических файлов в режиме DEBUG=False
Для решения проблемы используйте --insecure
python manage.py runserver --insecure
или
django-admin runserver -…
Подробнее
Скрыть\показать пароль в input
See the Pen
Show\hide password in input field by Denis (@m5dev)
on CodePen.
Подробнее