首页 > 解决方案 > 我们如何为复杂聚合动态添加别名?

问题描述

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

标签: djangodjango-orm

解决方案


与往常一样,您可以使用字典扩展:

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

推荐阅读