我有模特
class Item(models.Model):
inicio = models.DateTimeField()
当我尝试进行此查询时:
itens = Item.objects.filter(inicio__hour__gte=6)
它让我回复:
FieldError不支持的查询'小时'对于DateTimeField或在不允许的字段上加入。
如何进行此查询?
答案 0 :(得分:2)
抬头,这应该从Django 1.9
开始Event.objects.filter(timestamp__hour=23)
Event.objects.filter(time__hour=5)
Event.objects.filter(timestamp__hour__gte=12)
答案 1 :(得分:0)
您需要使用timedelta进行过滤:
from datetime import datetime, timedelta
five_hours_ago = datetime.now() - timedelta(hours=5)
items = Item.objects.filter(inicio__lt=five_hours_ago)
如果您不希望距离当前日期时间5小时,则可以随时指定确切的日期时间,然后从中减去5小时。
据我所知,根据documentation,您只能在一小时,一分钟或一小时内进行精确查找。