Django1.8或更少的queryset:按小时过滤多个日期时间

时间:2017-10-11 09:27:21

标签: python django datetime filter django-queryset

我有一个带有datetime字段的模型,我希望按小时过滤,问题是有多个日期时间,使得datetime.now()解决方案对于这种情况不可行。另外,如果我们尝试gt / lt / gte / lte / in到小时它就不起作用。

情况是如果小时小于12则返回"早上",如果它在12到18之间返回"下午"如果它大于18则返回"晚上"。

型号:

class MyModel(models.Model):
    datetime_field = models.DateTimeField()
    name = models.CharField()

数据示例:

1. 2012/10/2 22:00
2. 2015/2/15 15:00
3. 2017/3/2 9:00

预期的查询集:

Night = queryset.filter(datetime_field__hour__gte=18)
Afternoon = queryset.filter(datetime_field__hour__lt=18, datetime_field__hour__gte=12)
Morning = queryset.filter(datetime_field__hour__lt=12)

结果:

1. Night
2. Afternoon
3. Morning 

0 个答案:

没有答案