在Django / Python中的字典理解中实例化对象

时间:2013-05-13 08:35:21

标签: python django dictionary dictionary-comprehension

我正在尝试创建一个可以动态构建Django QuerySet的函数。但由于某种原因,它不断给出NameError ......任何人都可以看到出了什么问题吗?

不起作用:

from django.db.models import Sum

sum_fields = ['subtotal', 'id']
subtotal = Invoice.objects.filter(id__in=id_list).aggregate(**{field: Sum(field) for field in sum_fields})

给出的错误是NameError: global name 'Sum' is not defined。但是......我正在尝试进行字典理解之前导入它。

这确实有效:

from django.db.models import Sum

sum_fields = ['subtotal', 'id']
subtotal = Invoice.objects.filter(id__in=id_list).aggregate(**dict([(field, Sum(field)) for field in sum_fields]))

最后一个版本可以工作并做它应该做的事情,但我想知道我的字典理解有什么问题。

0 个答案:

没有答案