我试图在一个通用视图中计算timedelta,但我不知道如何遍历元组并进行我正在寻找的计算。你知道吗
我正在运行的查询是
sla_list = self.object_list.filter(types__name="Unplanned").filter(service__sla=True).values_list('service__name', 'end_out', 'start_out')
返回的一个例子是。你知道吗
(u'Peoplesoft', datetime.datetime(2012, 7, 12, 1, 57, tzinfo=(UTC)), datetime.datetime(2012, 7, 11, 19, 25, tzinfo=(UTC)))
我有一个模型方法的计算,它是工作的,但对于计算,我想做的时间增量,我认为它应该被移到视图中。你知道吗
我使用的模型方法是
timedelta = self.end_out - self.start_out
timedelta = timedelta.total_seconds()
timedelta = time.strftime('%H:%M', time.gmtime(timedelta))
任何想法都会很好。谢谢。你知道吗
sla_list
包含您要求的3个值,因此sla_list[1]
是结束值,而start_out
是sla_list[2]
。你知道吗只需将您的计算应用于这两个值:
我用一个使用^{} function 的更简单的方法替换了你的
time.gmtime(timedelta)
和strftime
舞蹈;你需要做的就是把总秒数转换成小时(秒除以60)和剩余秒数(秒模60)。你知道吗如果需要对每个} callable 快速有效地计算总和:
service__name
条目的时间增量求和,请按该条目排序,然后使用^{groupby
函数为您提供具有匹配的sla__name
值的子列表,我们只需计算每个条目的datetime.timedelta
,并使用sum()
计算总时间增量。你知道吗相关问题 更多 >
编程相关推荐