【发布时间】:2015-11-05 18:55:11
【问题描述】:
在我的模型中,我有一个 TimeField:
time = models.TimeField(db_index=True)
现在我必须按此值进行过滤:
例如我需要做类似的事情:time == "12:30"
**** 编辑 *****
我还需要做类似的事情:时间在一个范围内:from 12:15 to 12:15
我该怎么做?
【问题讨论】:
标签: python django django-orm
在我的模型中,我有一个 TimeField:
time = models.TimeField(db_index=True)
现在我必须按此值进行过滤:
例如我需要做类似的事情:time == "12:30"
**** 编辑 *****
我还需要做类似的事情:时间在一个范围内:from 12:15 to 12:15
我该怎么做?
【问题讨论】:
标签: python django django-orm
你可以这样做:
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))
【讨论】: