在TimeField上的Django过滤器 [英] Django filter on TimeField
本文介绍了在TimeField上的Django过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的模型中我有一个TimeField:
In my model I have a TimeField:
time = models.TimeField(db_index=True)
现在我必须按以下值过滤:
例如,我需要输入以下内容:时间== 12:30
Now I have to filter by this value:
for example I need to make something like: time == "12:30"
****编辑*****
**** EDIT *****
我还需要做类似的事情:时间在一定范围内:从12:15到12:15
I need also to make something like: time is in a range : from 12:15 to 12:15
如何制作?
推荐答案
您可以执行以下操作:
YourModel.objects.filter(time__contains='16:23')
如果您使用此代替:
YourModel.objects.filter(time='16:23')
自 TimeField起,您将永远找不到它
对象的保存时间包括毫秒: datetime.time(16,23,23,952151)
You will never find it since TimeField
objects are save including milliseconds: datetime.time(16, 23, 23, 952151)
编辑:
好的,假设您有字符串,则可以执行以下操作:
Ok, assuming you have strings you can do something like this:
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))
这篇关于在TimeField上的Django过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文