Как мы динамически добавляем псевдоним в сложный агрегат? - PullRequest
0 голосов
/ 07 июня 2018
for *key*,*value* in dict_test.items():
    data = (Model.objects.filter(id__in=*value*)
                         .annotate(num=Func(F('amount'),
                         template='%(function)s(%(expressions)s AS % (type)s)',
                         function='Cast', type='float')
                       ).aggregate(*key*=Coalesce(Sum('num'),0))

Вместо получения 'key' мне нужен фактический ключ из цикла for.

Я использую Django=1.9.1

1 Ответ

0 голосов
/ 07 июня 2018

Как всегда, вы можете использовать расширение словаря:

).aggregate(**{key: Coalesce(Sum('num'),0)})
...