问题
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