В Django как объединить один результат аннотации с другим? - PullRequest
0 голосов
/ 01 апреля 2020

Вот хитрая операция, над которой я работал. У меня есть следующее:

users.values('first_name').annotate(demo=F('demo_responses__demographic__display'), response=F('demo_responses__option__display'))

Когда я запускаю это, я получаю что-то вроде следующего для результатов:

[
 {'first_name': 'Bob', 'demo': 'Business Category', 'response': 'Engineering'}, 
 {'first_name': 'Bob', 'demo': 'Job Function', 'response': 'Training'}
 {'first_name': 'Joe', 'demo': 'Business Category', 'response': 'Restaurant'}, 
 {'first_name': 'Joe', 'demo': 'Job Function', 'response': 'Server'}
]

Что я хотел бы сделать, это сжать их в следующее:

[
 {'first_name': 'Bob', 'Business Category': 'Engineering', 'Job Function': 'Training'}, 
 {'first_name': 'Joe', 'Business Category': 'Restaurant', 'Job Function': 'Server'}, 
]

Наличие этого в этом формате было бы полезно для некоторых отчетов, которые я генерирую. Я знаю, что могу сделать это программно, но я не знал, был ли какой-нибудь Django запрос магический c, который я мог бы использовать, чтобы добраться туда быстрее. Есть идеи?

...