如何比较Django中的日期?

Chr*_*isC 2 python django

我有一个带有类变量的Django模型类due_date:

due_date = models.DateField()
Run Code Online (Sandbox Code Playgroud)

如果对象是基于今天的日期,我想在Django管理员输出.

我的功能如下:

def is_due_today(self):
    dd = self.due_date
    today = datetime.date.now
    return dd - today > 0
Run Code Online (Sandbox Code Playgroud)

但我的输出是:

(None)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Dan*_*olo 5

datetime在Python中减去两个对象会为您提供一个timedelta对象,您无法将其与整数进行比较.但是,您可以从中获取类似total_seconds()内容,看它是否非零.

>>> now = datetime.datetime.now()
# wait 3 seconds
>>> now2 = datetime.datetime.now()
>>> td = now2 - now
>>> td.total_seconds()
3.266
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下,代码看起来像(未经测试):

def is_due_today(self):
    dd = self.due_date
    delta = dd - datetime.date.today()
    return delta.total_seconds() > 0
Run Code Online (Sandbox Code Playgroud)