RuntimeWarning:DateTimeField Session.expire_date received a naive datetime
cywhat
·
2022-03-30
·
via Django - 分类 - cywhat's blog
约 288 字
预计阅读 1 分钟
次阅读
条评论
前景
Django部署的web应用报警,内容如下:
1
|
"RuntimeWarning:DateTimeField Session.expire_date received a naive datetime"
|
原因:
1
2
3
4
|
这是一个跟时区有关的问题,错误里说到datetime字段得到一个naive datetime,而不是支持time zone的active datetime
由于USE_TZ设置为True,Django会自动根据所设的时区对时间进行转换
程序中和数据保存的时间都转UTC时间,只有模版渲染时会把时间转为TIME_ZONE所设置的时区的时间
使用datetime.datetime.utcnow()输出的是不带时区的utc时间,称为naive time
|
解决
1
2
3
4
5
6
7
|
from django.utils import timezone
#方法1
#datetime.now() 修改为--> timezone.now()
#方法2
#datetime.now() 修改为--> datetime.datetime.now(tz=timezone.utc)
|
关注一下再走吧
公众号
小程序
赞赏支持
微信打赏
支付宝打赏
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。