如何在Django中根据分钟查询输入数?
Posted
技术标签:
【中文标题】如何在Django中根据分钟查询输入数?【英文标题】:How to query number of input based on minute in 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 菜鸟在这里,非常感谢您的帮助 :)
【问题讨论】:
【参考方案1】:在挖掘文档后,我设法找到了答案。它使用TruncHour
函数
muatan.objects.annotate(hour=TruncHour('time_logged', output_field=TimeField()),).values('hour').annotate(muatan=Count('id'))
【讨论】:
以上是关于如何在Django中根据分钟查询输入数?的主要内容,如果未能解决你的问题,请参考以下文章
如何计算呈现 Django 管理页面所需的 SQL 查询数?
如何根据Django Solr中选定的类别形成正确的查询列表