【发布时间】:2012-10-02 00:38:04
【问题描述】:
我在模型中有一个字段,例如:
class Sample(models.Model):
start = models.TimeField(verbose_name=_("start time"))
end = models.TimeField(verbose_name=_("end time"))
现在,需要按“开始”和“结束”属性过滤我的对象,例如,它应该按今天、时间和 30 分钟内的时间过滤所有对象。
我试过了:
models.Sample.objects.filter(start__gt=datetime.now(),
end__lt=datetime.now() + timedelta(minutes=30))
我知道,使用两个过滤器进行过滤是一个错误。我的代码到今天还没有过滤。例如,我需要今天(星期二)从 12h 到 12:30h 拥有所有对象
提前感谢您的帮助。
【问题讨论】:
-
你的意思是用两个过滤器过滤是错误的?您仅使用一个具有两个条件的过滤器功能。您还可以澄清您要过滤的内容。我仍然对“今天的所有对象,时间和 30 分钟内的时间”是什么意思感到困惑。
-
我的意思是我正在链接过滤器,在我的情况下这是一个错误。我有一个按时间范围开始和结束的对象,例如开始 10:15 - 结束 12:00, 12:00 - 15:30... 我需要过滤对象,并且只获取那些从今天开始的对象,当前时间,在 30 分钟内。
-
为了能够按今天进行过滤,您必须更改您的字段以使用
DateTime。
标签: python mysql database django