Django按日期筛选

Django按日期筛选,django,python-3.x,Django,Python 3.x,我有 我需要找到所有的档案记录,过期日期=正好x天从现在开始。 我该怎么做? 我可以考虑遍历所有概要文件并手动比较日期,但这似乎并不有效 更新: 我需要按日期筛选,而不是按重复问题中的日期时间字段筛选 现在我是这样做的: Class Profile(models.Model) turn_off_date = models.DateTimeField(null= True, blank = True,auto_now = False) 在我的个人资料模型中,我定义了一种方法: profi

我有

我需要找到所有的档案记录,过期日期=正好x天从现在开始。 我该怎么做? 我可以考虑遍历所有概要文件并手动比较日期,但这似乎并不有效

更新:

我需要按日期筛选,而不是按重复问题中的日期时间字段筛选

现在我是这样做的:

Class Profile(models.Model)
    turn_off_date = models.DateTimeField(null= True, blank = True,auto_now = False)
在我的个人资料模型中,我定义了一种方法:

profiles = Profile.objects.all()
for profile in profiles:
        if(profile.days_left() == x):
           print(profile.days_left())
def剩余天数(自):
关闭日期=自我。关闭日期
剩余天数=(关闭日期-日期时间.now()).days
如果剩余天数小于0:
剩余天数=0
还剩几天
您可以使用

例如:

def days_left(self):
        turn_off_date = self.turn_off_date

        days_left = (turn_off_date - datetime.now()).days
        if days_left < 0:
            days_left = 0
        return days_left
您只需查询具有给定日期的

对于datetime字段,将值强制转换为date。允许链接其他字段查找。获取日期值


我想这样的事情会很好:

从Django 1.9中,您可以使用
\u date
字段查找,完全按照您的要求 我在你的问题中提到过。对于旧版本,您必须 不要用其他方法


多亏了

可能的副本,您可能需要检查此副本是否准确,但您的问题不明确。您所说的
到期日=从现在起x天是什么意思?确切地说是那个日期还是之前/之后?@Selcuk确切地说,你所说的按
日期
过滤是什么意思,而不是
日期时间
?你试过什么?
Profile.objects.filter(turn_off_date__range=(start_date, end_date))
.filter(turn_off_date__date=(datetime.now()+timedelta(days=x)).date())