2011-09-19 134 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