将聚合结果转换为字符串

时间:2013-04-10 12:25:29

标签: django

我使用聚合和总和来确定我每个月工作的小时数。我有它工作,但“小时”变量总是有额外的内容!

我应该补充一下,我是django的新手,我从这里获得了大部分代码(Django beginner: How to query in django ORM to calculate fields based on dates)。

我的代码:

hours = ""
work_data = ""
month_data = ""

for month in range(1,13):
  entries_per_month = Mydata.objects.filter(myTimePeriod__month=month).filter(myResource="James")
  hours = str(entries_per_month.aggregate(value=Sum('myHoursLogged')))
  month_data = month_data + "'" + str(month) + "',"
  work_data = work_data + hours + ","

我看一下work_data的结果:

work_data

这给了我{'value': Decimal('136.80')},{'value': Decimal('146.40')}

的结果

我需要格式为:136.80, 146.40(这是图表库所需的格式)。我已尝试使用str()进行转换,但在这种情况下似乎无效。

1 个答案:

答案 0 :(得分:0)

str在这里没用,因为您的数据是字典列表。你只需要处理它并获得结果:

hours = ','.join(str(v['value']) for v in entries_per_month)