我有一个带有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