python - 我如何比较 Django 中的日期?

标签 python django

我有一个带有类变量 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/

相关文章:

python - 是否可以将 Canvas 作为按钮的图标?

python - 执行 python manage.pysyncdb 时出现 ImportError : No module named azure. storage.blob

python - 将单引号替换为双引号 python pandas 数据框

Python Asyncio run_forever() 和任务

python - django 无法渲染表单

python - "DRF Throttling"和 "Django Axes"有什么不同

python - Django/unittest 在测试运行程序末尾运行命令

python - 如何将 models.py 中创建的新类添加到 admin.py (django)

django - grappelli隐藏内联可排序(Django Admin)中的可排序字段

python - “int”对象不可调用