【问题标题】:How to sum float django [closed]如何总结浮动django [关闭]
【发布时间】:2016-04-07 11:36:25
【问题描述】:

我遇到了 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 =总和(升) 它给了我两个花车。当我想将此附加到下一个列表时,它再次返回了两个带有浮点数的列表。模型中的 Gadget 和 GadgetDay 是抽象类。如何对所有浮点数求和?

【问题讨论】:

  • 请向我们展示您获得的列表。附加到一个列表时,您如何获得两个列表?
  • 另外sum 返回两个值似乎不太可能。
  • 有列表:[52.47, 53.16] - 来自小工具 A 的能量和 [0.0, 49.21] - 来自小工具 B 的能量

标签: python django sum


【解决方案1】:

您可以使用 Django 的 ORM 使用 .aggregate() 来进行计算,而不是在 python 级别进行计算。

from django.db.models import Sum

>>> Gadget.objects.filter(gadget=gadget).aggregate(total_energy=Sum('energy'))

{'total_energy': 12345.67}

上述查询返回查询集中所有energy字段中的Sum()

阅读更多:aggregation queries in Django

【讨论】:

  • 此方法为每个小工具返回两个字典:{'total_energy': 105.63} {'total_energy': 49.21}
  • Field() 是您的 energy 字段吗?
  • 对不起,我不明白
  • 您是如何在模型中定义能量场的? 点赞energy = models.FooField(...
  • 我没有在模型中定义能量,我在视图中创建它:for gadget in gadget: d={} d['energy'] = Gadget.objects.filter(gadget=gadget,) .aggregate(energy=Avg('energy'))['energy'] or '0.00'
猜你喜欢
  • 2020-11-25
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 2014-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多