Django在TimeField上过滤

时间:2015-11-05 18:55:12

标签: python django django-orm

在我的模型中,我有一个TimeField:

time = models.TimeField(db_index=True)

现在我必须按此值过滤: 例如,我需要制作类似:time == "12:30"

的内容

****编辑*****

我还需要做出类似的事情:时间在一个范围内:from 12:15 to 12:15

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以这样做:

YourModel.objects.filter(time__contains='16:23')

如果你改用它:

YourModel.objects.filter(time='16:23')

TimeField个对象保存以来,您永远找不到它,包括毫秒:datetime.time(16, 23, 23, 952151)

修改

好的,假设你有字符串,你可以这样做:

begin = datetime.datetime.strptime('12:14', '%H:%M').time()
end = datetime.datetime.strptime('12:16', '%H:%M').time()
result = YourModel.objects.filter(time__range=(begin, end))