如何在Django中按小时过滤模型

时间:2018-04-20 13:40:35

标签: python django

我正在尝试过滤和计算员工出勤率。

我有一张这样的表:

attedance table:
+-----+-----------------------+----------+-----------+
|  id |                  time |   status |    emp_id |
+-----+-----------------------+----------+-----------+
|   1 |    2018-04-17 7:03:40 |        1 |         1 |
|   2 |    2018-04-18 7:10:50 |        1 |         1 |
|   3 |    2018-04-19 5:05:32 |        1 |         1 |
|   4 |    2018-04-20 7:07:44 |        1 |         1 |
|   5 |    2018-04-18 7:10:50 |        1 |         2 |
+-----+-----------------------+----------+-----------+

我的目标是过滤所有出勤数据。

获得解决方案 models.model.objects.filter(emp_id=1).count()

在我的情况下返回4

还要过滤time(hour)必须> 6

尝试将datetime.datetime(time).time() > 6添加到过滤器,但不起作用。

任何可以帮助或建议我如何实现它?...

或者有其他最佳方案,例如使用forloop,

或者它不可能?...

2 个答案:

答案 0 :(得分:1)

您可以使用__hour按小时过滤:

$facilities->each->setAppends([
    'your_attribute_here'
]);

答案 1 :(得分:0)

你可以像这样过滤

  

model.objects.filter(time__hour__gte = 6).filter(EMP_ID = 1).Count之间()