Django:按日期范围过滤对象
我的对象模型是:
class Event(models.Model):
start = models.DateTimeField()
end = models.DateTimeField()
我需要筛选出今天的所有对象。
我有一个对象,它的开始日期是2014年3月1日00:00,结束日期是2014年10月1日00:00。
在根据今天的日期筛选对象时,我希望能得到这个对象,比如:
Event.objects.filter(start__gte=today, end__lte=today)
我该如何根据今天的日期来筛选对象,并获取所有开始日期在今天之后、结束日期在今天之前的结果呢?
2 个回答
1
你可以使用datetime模块里的combine方法:
import datetime
today = datetime.datetime.today()
Event.objects.filter(start__gte=datetime.datetime.combine(today, datetime.time.min),
end__lte=datetime.datetime.combine(today, datetime.time.max))
6
使用 datetime.date.today()
来获取今天的日期,然后用 gt
和 lt
来进行比较:
import datetime
today = datetime.date.today()
Event.objects.filter(start__lt=today, end__gt=today)
这样可以筛选出那些开始日期在今天之前,并且结束日期在今天之后的对象。