在Django中格式化查询输出

时间:2017-03-20 14:33:38

标签: python django django-forms django-queryset

我试图总结一个条目列表。但是,我似乎无法弄清楚如何提取我需要的数字。

每当我跑:

Entry.objects.aggregate(Sum('euros_sum'))

我明白了:

{'euros_sum__sum': Decimal('5948.48')}

如果我需要将数字添加到模板中,那么这很好。但是,我需要数字(5948.48)本身,以便我可以将它添加到表单字段。如何将查询格式化为仅输出总数而不显示字段详细信息(euros_sum__sum: Decimal等)?

我在这里缺少什么?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用值别名可能会派上用场(s是别名,您可以随意命名)。请注意,aggregate会返回dict,因此您只需.get别名值:

d = Entry.objects.aggregate(s=Sum('euros_sum')).get('s') 
d  # Decimal('5948.48')
type(d)  # <class 'decimal.Decimal'>

d = Entry.objects.aggregate(s=Sum('euros_sum')).get('s')
str(d)  # '5948.48'
type(str(d))  # <class 'str'>