我遇到了sum float的问题。我有一些小工具对象,它是按小工具过滤的,因为有两个小工具可以测量能量。 这是我的代码:
for gadget n gadget:
d={}
['energy']=Gadget.objects.filter(gadget=gadget).aggregate(energy=Avg( 'energy'))['energy'] or '0.00'
s = GadgetDay.objects.filter(gadget=gadget)
l = []
for log in s:
l.append(log.energy)
当我打印l时,它给了我两个带浮动的列表。当我试图总结这个: k =总和(l) 它给了我两个漂浮物。当我想将它附加到下一个列表时,它又返回了两个带有浮点数的列表。模型中的Gadget和GadgetDay是抽象类。我如何总结所有花车?
答案 0 :(得分:4)
您可以使用.aggregate()
使用Django的ORM,而不是在python级别进行计算。
from django.db.models import Sum
>>> Gadget.objects.filter(gadget=gadget).aggregate(total_energy=Sum('energy'))
{'total_energy': 12345.67}
上述查询会返回查询集中所有Sum()
字段的energy
。