在DateTimeField Django上查找小时

时间:2014-10-08 23:23:09

标签: django django-models django-queryset

我有模特

class Item(models.Model):
    inicio = models.DateTimeField()

当我尝试进行此查询时:

itens = Item.objects.filter(inicio__hour__gte=6)

它让我回复:

  

FieldError不支持的查询'小时'对于DateTimeField或在不允许的字段上加入。

如何进行此查询?

2 个答案:

答案 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,您只能在一小时,一分钟或一小时内进行精确查找。