我正在尝试获取两个日期,昨天和明天基于给定的日期,然后我传递给Django的Queryset过滤器函数:
nxtday = relativedelta(day=+1) + date
yesterday = relativedelta(day=-1) + date
events = events.filter(start_datetime__gte=yesterday, end_datetime__lte=nxtday)
这里的重点是获取当天的事件,因为你已经推断过。问题是我一直收到这个错误:
ValueError: day is out of range for month
切换到timedelta对象会在以后使用dateutil的rrule引发问题:
TypeError: can't compare offset-naive and offset-aware datetimes
我喜欢dateutil模块,所以我很好奇为什么它不起作用。示例日期已过:2014-02-26。有什么想法吗?
答案 0 :(得分:1)
为day参数传递-1是请求当月的-1天,这就是为什么它会抱怨超出范围的值。
对于相对增量,天参数用于绝对日期,天参数用于相对日期。 docs
nxtday = relativedelta(days=1) + date
yesterday = relativedelta(days=-1) + date