Django filter on TimeField

家住魔仙堡 提交于 2019-12-12 02:56:22

问题


In my model I have a TimeField:

time = models.TimeField(db_index=True)

Now I have to filter by this value: for example I need to make something like: time == "12:30"

**** EDIT *****

I need also to make something like: time is in a range : from 12:15 to 12:15

How can I make it?


回答1:


You can do something like this:

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

If you use this instead:

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

You will never find it since TimeField objects are save including milliseconds: datetime.time(16, 23, 23, 952151)

Edit:

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))


来源:https://stackoverflow.com/questions/33552558/django-filter-on-timefield

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!