Django 2.1 аннотирует количество детей и внуков - PullRequest
0 голосов
/ 08 октября 2018

Я хочу посчитать, сколько детей и внуков есть в каждой записи.Вот мои структуры таблиц ниже:

Записи:

id  | name
1   | record 1

Сообщений:

id  | record   | title
1   | record 1 | title 1
2   | record 1 | title 2

Вложения:

   id   | post   | name
   1    | post 1 | name 1
   2    | post 1 | name 2
   3    | post 2 | name 3

, поэтому на этом примерезапись 1 должна иметь

   children: 2
   grandchildren: 3
   total_links: 5 

Вот мой текущий код в моем view.py:

records = Record.ojects.all().annotate(total_links=Count('post__id'))

1 Ответ

0 голосов
/ 08 октября 2018
queryset = Record.ojects.all().annotate( 
                post_count=Count('post'), 
                attachment_count=Count('post__attachment'))

records = queryset.annotate(children_count= ExpressionWrapper(
                             F('post_count') + 
                             F('attachment_count'),
                             output_field=DecimalField()
))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...