BUG

TypeError: can’t compare offset-naive and offset-aware datetimes
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DEBUG

offset-naive是不含时区的类型,而offset-aware是有时区类型,两者不能比较。

datetime.datetime.now() 以及 datetime.datetime.now() + datetime.timedelta(minutes=10) 的结果都是 offset-naive 类型:
在这里插入图片描述
而Django中模型DateTimeField类会默认转成offset-aware型的UTC时间:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以会报错 TypeError: can’t compare offset-naive and offset-aware datetimes.
故解决方案有以下几种:

  1. setting.py中的USE_TZ设为False即可。
  2. 两种类型转换:
    • offset-naive类型转为offset-aware类型
      在这里插入图片描述
    • offset-aware类型转为offset-naive类型
      在这里插入图片描述

PS:datetime.datetime.utcnow() 并不能生成offset-aware类型的UTC时间,故不能解决此问题:
在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐