Django将逻辑过期7天

时间:2016-04-02 01:31:40

标签: python django datefield

我目前有一个Promotion表,字段end_date定义为:

end_date = models.DateField('date')

我想创建一个查询,我可以过滤所有将在7天后过期的促销活动。

我该怎么做呢?我没有运气试过这个:

from restaurant.models import Promotion 
from datetime import datetime, timedelta

expiring_soon = Promption.objects.filter(end_date = datetime.now()+timedelta(days=7))

2 个答案:

答案 0 :(得分:2)

好的,我经历了一个小小的虚拟项目而且距离不远,你只是没有从datetime获得约会(而不是datetime.now())所以你必须添加一个额外的方法调用:

expiring_soon = Promotion.objects.filter(end_date = datetime.now().date() + timedelta(days=7))

另请注意,datetime.now()为您提供了非本地化的datetime,因此您可能会看到某些结果在一天内出现的情况,因为UTC在您之前/之后。

答案 1 :(得分:0)

expiring_soon = Promotion.objects.filter(end_date =datetime.date.today() + relativedelta.relativedelta(days=7))