【问题标题】:How to query number of input based on minute in Django?如何在Django中根据分钟查询输入数?
【发布时间】:2019-01-19 22:23:36
【问题描述】:

所以我正在为当地的货运租赁 SME 实施一个网络应用程序。基本上它的作用是记录日期、小时和分钟以计算卡车的 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 菜鸟在这里,非常感谢您的帮助 :)

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-18
      • 2014-11-11
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多