在TimeField上的Django过滤器 [英] Django filter on TimeField

查看:107
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆