如何按路线和日期范围计算每小时的事件数

时间:2017-10-19 15:42:11

标签: django django-models django-templates django-views

如何按路线和日期计算每小时的停靠时间 模型:

def stops_per_hour(date): 
    query_set = MyModel.objects.filter(date=date).values(
        'route', 'dropoff_stops','pickup_stops','on_route_time').annotate(
            total=(Sum('actual_stops') + Sum('pickup_stops'))).order_by('route')

我的查询:

<<QuerySet [{'route': 226, 'dropoff_stops': 84, 'pickup_stops': 0, 'on_route_time': datetime.time(5, 23), 'total': 84},{'route': 242, 'dropoff_stops': 33, 'pickup_stops': 0, 'on_route_time': datetime.time(3, 24), 'total': 33}]>>

给了我:

cellForRowAtIndexPath

我正在考虑如何计算每条路线的停车/小时并将其传递到视图(例如路线226站/小时= 15.18。建议?谢谢。

1 个答案:

答案 0 :(得分:0)

这就是我最终解决它的方式。会对改进建议感兴趣。

new_set = []
for i in query_set:
    time = i.get('on_route_time')
    stops = i.get('dropoff_stops') + i.get('pickup_stops)
    route = i.get('route')

    try:
        time.hour * 60 + time.minute > 0
        sph = round(stops / (time.hour * 60 + time.minute) * 60, 1)
        dict = {'route':route, 'sph', sph}
        new_set.append(dict)
    except:
        sph = 0
        new_set.append(dict)
return new_set

尝试处理两种类型并除以零问题。