比较和区别datetime.now()和db中的datetimefield

时间:2018-12-10 19:24:38

标签: python django django-timezone

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

我想在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 并发布了以下内容:created_at:2018-12-10 20:18:52:544396 + 00:00

如何使它们具有可比性?

1 个答案:

答案 0 :(得分:1)

Django为您提供了时区感知datetime对象。 datetime.now()giving you的时区原始datetime对象。您无法比较这些。

代替使用django.utils.timezone.now(),它提供与您的Django设置相匹配的datetime对象的类型(在您的情况下为时区感知datetime)。

还要注意,timedelta个对象as documented没有minutes属性。它们确实具有seconds属性。

总结:

if timezone.now() - post.created_at > timedelta(minutes=10):
    Do_this
else:
    Do_that