2011-09-19 133 views
0

使用可以存储设备的Django应用程序。字典中的总和值

class Equipment(models.Model): 
    price = models.DecimalField(max_digits = 12, decimal_places=2) 

我想添加所有设备的价格。我试图做这样的事情:

total = Equipment.objects.aggregate(Sum('price')) 

,但如果这样做,我不能得到与此有关,因为它说这是一个dictionary任何数学款项。

我想要我的价格值是一个数字,因为我希望能够与total变量进行和。

回答

1

您需要添加.all()Django Aggregation

Equipment.objects.all().aggregate(Sum('price')) 

编辑:您不需要.all()在这种情况下,你可以得到价值了通过访问dict返回的值返回的字典:

total = Equipment.objects.aggregate(price_sum=Sum('price')) 
total_price = total['price_sum'] 
+0

不,它仍然这样做。这不像以前那样是一个整数,而是一本字典。除非有一种方法来乘以和减去一个整数字典值(我不知道,有没有办法?)然后,必须有另一种方式只是为了做到这一点 –

+0

我误解了你的问题,我更新了答案以反映你的评论。 – bamana