2

我找不到任何适合我的答案。我正在尝试使用 datetime.now() 检查创建的帖子的日期时间之间的差异

我想在 view.py 中做的例子

  if (datetime.now() - post.created_at).minutes > 10:
        Do_this
    else:
        Do_that

我尝试过使用 timedelta 的东西。还尝试了使用日期时间格式的 strptime。没运气

当我打印 datetime.now() 我得到: 2018-12-10 20:22:10.535052 而 post.created_at: 2018-12-10 20:18:52:544396+00:00

我如何使它们具有可比性?

4

1 回答 1

2

Django 为您提供了一个时区感知datetime对象。给你datetime.now()一个时区天真的对象。你不能比较这些。datetime

而是使用django.utils.timezone.now(),它提供了datetime与您的 Django 设置匹配的对象类型(在您的情况下,是 timezone-aware datetime)。

另请注意,所记录timedelta的对象没有属性。他们确实有一个属性。minutesseconds

总之:

if timezone.now() - post.created_at > timedelta(minutes=10):
    Do_this
else:
    Do_that
于 2018-12-10T22:12:36.520 回答