Django 正好 7 天过期逻辑

Mic*_*ith 0 python django datefield

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

end_date = models.DateField('date')
Run Code Online (Sandbox Code Playgroud)

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

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

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

expiring_soon = Promption.objects.filter(end_date = datetime.now()+timedelta(days=7))
Run Code Online (Sandbox Code Playgroud)

R P*_*gna 5

好吧,我运行了一个小虚拟项目,您的情况并不遥远,您只是没有从中获取日期而不是datetimedatetime.now(),因此您必须添加一个额外的方法调用:

expiring_soon = Promotion.objects.filter(end_date = datetime.now().date() + timedelta(days=7))
Run Code Online (Sandbox Code Playgroud)

另请注意,这datetime.now()会为您提供非本地化的结果datetime,因此您可能会看到结果看起来相差一天的结果,因为 UTC 领先/落后于您。