如何在Django中根据分钟查询输入的数量?

时间:2018-08-13 08:25:17

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

因此,我正在为一家当地的卡车租赁中小型企业实施一个webapp。基本上,它会记录日期,小时和分钟以计算卡车的Ritase(输出)。

这是models.py

class Muatan(models.Model):
     recorded_date = models.DateField(auto_now_add=True)
     date_added = models.DateField(auto_now_add=False)

     shift  = models.ForeignKey(Shift, on_delete=models.DO_NOTHING)

     time_logged = models.TimeField(auto_now_add=False)

     excavator = models.ForeignKey(Excavator, on_delete=models.DO_NOTHING)
     operator_excavator = models.ForeignKey(ExcavatorOperator, on_delete=models.DO_NOTHING)


     dumpTruck = models.ForeignKey(DumpTruck, on_delete=models.DO_NOTHING, null=True)
     driver_dumptruck = models.ForeignKey(DumpTruckDriver, on_delete=models.DO_NOTHING)

     location = models.ForeignKey(Lokasi, on_delete=models.DO_NOTHING)
     material = models.ForeignKey(Material, on_delete=models.DO_NOTHING)



     reported_problem = models.TextField(blank=True)

给出一个模型示例,假设管理器记录了来自admin.py的这些输入。为简化起见,我只添加了date_added和time_logged。

  • 2018年8月13日在14:20
  • 2018年8月13日14:40
  • 2018年8月13日14:59
  • 2018年8月13日15:15
  • 2018年8月13日15:30

查询的预期输出将类似于

  • 小时:14分钟:20
  • 小时:14分钟:40
  • 小时:14分钟:59
  • 总酶:3

因为14小时内有3条日志。

我如何在Django中实现呢?另外,我是否将代码放在models.py或views.py中?总的django新手,非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

我在找到文档后设法找到答案。它使用TruncHour函数

muatan.objects.annotate(hour=TruncHour('time_logged', output_field=TimeField()),).values('hour').annotate(muatan=Count('id'))