@Gambetto

Как в Django добавить вычисляемое поле с агрегацией и вложенным запросом?

Есть модели Блог (id, name) и Статья (id, name, type).
Хочу создать аннотацию с подсчётом количества статей типа "a" в каждом блоге.
Пробую так, но получаю 1.
from django.db.models import Count, OuterRef, Subquery
articles_of_type_a = Article.objects.filter(blog=OuterRef('id'), type='a')
Blog.objects.annotate(type_a_count=Count(Subquery(articles_of_type_a.values('id'))))

Подскажите, в чём ошибка?
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы