2011-09-19 6 views
0

장비를 저장할 수있는 장고 앱으로 작업합니다.사전에 값 합계

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

모든 장비 가격을 추가하고 싶습니다. 나는 이런 식으로 뭔가를 시도 :

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

하지만 이렇게하면 나는 그것이 dictionary의 말씀이 있기 때문에 어떤 수학적 금액을 얻을 수 없습니다.

total 변수를 사용하여 합계를 계산할 수 있기를 원하기 때문에 가격 값을 숫자로 지정하고 싶습니다.

답변

1

당신은 Django Aggregation

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

편집을 참조하십시오 .all()을 추가해야합니다 :이 경우에 .all() 필요하지 않습니다, 당신은 dict에 반환 된 값에 액세스하여 반환 된 사전에서 값을 얻을 수 있습니다 :

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

아니요, 여전히 동일합니다. 이것은 정수가 아니라 이전과 같은 사전입니다. 거기에 곱셈하고 사전 값 (내가 모르는 방법은 무엇입니까?) 정수를 빼는 방법이 없다면 그냥 그것을 할 다른 방법이 있어야합니다 –

+0

나는 당신의 질문을 오독, 귀하의 의견을 반영하도록 답변을 업데이 트했습니다 . – bamana