Django Expire 逻辑恰好 7 天

Django Expire logic for exactly 7 days

我目前有一个 Promotion table 字段 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))

好的,我 运行 通过一个小的虚拟项目,你离得不远了,你只是没有得到 日期 (相对于 datetime) 来自 datetime.now() 所以你必须添加一个额外的方法调用:

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

另请注意,datetime.now() 为您提供了非本地化的 datetime,因此您可能会看到某些结果似乎与一天不符,因为 UTC 领先于您 of/behind。

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