Django中的数学,以获取返回的总数

Django中的数学,以获取返回的总数,django,django-views,django-generic-views,Django,Django Views,Django Generic Views,我试图得到一个结果,告诉我在一个项目上工作了10.5个小时 在我看来,以下是我正在做的事情: time = Time.objects.filter(my_company=my_company, project=project) raw_hours = time.aggregate(Sum('hours')) raw_minutes = time.aggregate(Sum('minutes')) adj_minutes = raw_minutes.raw_minutes__sum / 100 h

我试图得到一个结果,告诉我在一个项目上工作了10.5个小时

在我看来,以下是我正在做的事情:

time = Time.objects.filter(my_company=my_company, project=project)
raw_hours = time.aggregate(Sum('hours'))
raw_minutes = time.aggregate(Sum('minutes'))
adj_minutes = raw_minutes.raw_minutes__sum / 100
hours = adj_minutes + raw_hours.raw_hours__sum
return {'hours': hours}
当我将
{{view.hours}}
添加到我的模板时,我在返回中没有看到任何内容。我期待的是
view.hours==10.5
或者类似的东西,这取决于数学

所以我有两个问题。我的想法正确吗?有没有更有效的方法


感谢您的帮助。

您可以通过执行以下操作来获得这两个聚合:

d = time.aggregate(Sum('hours'), Sum('minutes'))
这将返回一个如下所示的字典:

{'hours__sum' : Decimal('10'), 'minutes__sum' : Decimal('630')}
因此,要访问这些值,您应该像处理任何其他字典一样处理它

hours = d['hours__sum']
在模板上,您只需要提供上下文字典的键,在您的情况下:

{{ hours }}

您是否尝试过简单的
{{hours}}
?因此,澄清一下,这是获取上下文数据的另一种方式。因此,无需每次都编写get_context_数据,只需编写一个附加到视图的方法即可。所以,它必须是{{view.hours}明白了!很酷的东西:)我把事情弄得太复杂了,我的语法错了。