Задать вопрос
@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'))))

Подскажите, в чём ошибка?
  • Вопрос задан
  • 153 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Разработка на Python
    1 год
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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