Loaddata not dealing with timestamps and timezones properly(Loaddata 未正确处理时间戳和时区)
问题描述
我正在使用启用了 mysql 和时区的 django 1.4.1.我将数据转储到 yaml,修改了一些字段以创建一些测试数据,并尝试将其重新加载.然而,即使指定了 tz,Django 仍然抱怨天真的日期时间
I'm using django 1.4.1 with mysql and timezones enabled. I did a dump data to yaml, modified some fields to create some test data, and am trying to load it back in. however, Django keeps complaining about naive datetimes even though a tz is specified
具体来说,我的 loaddata 有:
specifically, my loaddata has:
fields: {created_date: !!timestamp '2012-09-15 22:17:44+00:00', ...
但是 loaddata 给出了错误:
but loaddata gives the error:
RuntimeWarning: DateTimeField received a naive datetime (2012-09-15 22:17:44) while time zone support is active.
这对我来说没有多大意义,因为它是:
This doesn't make much sense to me, seeing as its:
- UTC 时间戳
- 与 Django 使用 dumpdata 导出的完全相同的格式
有什么方法可以告诉 django 这是一个 UTC 日期吗?
is there some way i can tell django this is a UTC date?
推荐答案
来自 docs...
在序列化感知日期时间时,包括 UTC 偏移量,例如这个:
When serializing an aware datetime, the UTC offset is included, like this:
"2011-09-01T13:20:30+03:00"
对于一个天真的日期时间,显然不是:
For a naive datetime, it obviously isn't:
"2011-09-01T13:20:30"
...所以不是...
created_date: !!timestamp '2012-09-15 22:17:44+00:00'
...任何一个...
created_date: '2012-09-15T22:17:44+00:00'
...或...
created_date: '2012-09-15T22:17:44Z'
...会起作用的.
这篇关于Loaddata 未正确处理时间戳和时区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Loaddata 未正确处理时间戳和时区


基础教程推荐
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01