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.
Другие публикации из блога
Как запустить, перезапустить, остановить, узнать статус Nginx в Ubuntu?
Systemctl: start\restart\stop\status
sudo systemctl restart nginx
sudo systemctl start nginx
sudo systemctl sto…
Подробнее
Как создать Django app в определенной папке
Предположим структура вашего проекта выглядит следующим образом:
apps/ config/ db.sqlite3 manage.py* media/ r…
Подробнее
Сохранить credentials GitHub на сервере
Чтобы каждый раз при git pull не приходилось заново указывать ваш логин и пароль (access token) на GitHub перед любой м…
Подробнее
Как "сжать" список любой вложенность итеративно в Python?
Подробнее
После обновления >= psycopg 3.1.8 в Django до 4.2.* появляется 502 ошибка
Скорее всего вы не установили всех зависимостей psycopg:
pip install "psycopg[binary,pool]"
Подробнее
Как удалить удалить содержимое папки в Python?
from pathlib import Path
import shutil
shutil.rmtree('/path/to/your/folder', ignore_errors=True)
Path('/path/to/…
Подробнее