我的对象模型是:
class Event(models.Model):
start = models.DateTimeField()
end = models.DateTimeField()
我今天需要过滤所有对象。
我有一个对象,开始日期为2014/03/01 00:00,结束日期为2014/10/01 00:00。 我今天日期过滤对象时需要有这个对象:
Event.objects.filter(start__gte=today, end__lte=today)
如何按今天的日期过滤对象,并在开始时获取所有结果>今天<结束?
答案 0 :(得分:4)
从datetime.date.today()
获取今天的日期并使用gt
和lt
:
import datetime
today = datetime.date.today()
Event.objects.filter(start__lt=today, end__gt=today)
这将过滤开始日期小于今天且结束日期大于今天的对象。
答案 1 :(得分:0)
您可以使用datetime模块的组合方法:
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))