我有一个带有类变量 due_date
的 Django 模型类:
due_date = models.DateField()
我想根据今天的日期在 Django 管理中输出对象是否到期。
我的函数如下:
def is_due_today(self):
dd = self.due_date
today = datetime.date.now
return dd - today > 0
但我的输出是:
(None)
我做错了什么?
最佳答案
在 Python 中减去两个 datetime
对象得到一个 timedelta
对象,您无法将其与整数进行比较。但是,您可以从中获取诸如 total_seconds()
之类的内容,以查看它是否非零。
>>> now = datetime.datetime.now()
# wait 3 seconds
>>> now2 = datetime.datetime.now()
>>> td = now2 - now
>>> td.total_seconds()
3.266
所以在你的情况下,代码看起来像(未经测试):
def is_due_today(self):
dd = self.due_date
delta = dd - datetime.date.today()
return delta.total_seconds() > 0
关于python - 我如何比较 Django 中的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5385344/