我正在使用一个API来传递给我一个他们不能保证的时间/日期字段,其中总是会有时区信息。
从他们的文档中,这个字段可以是:
Empty String,
YYYY-MM-DD,
YYYY-MM-DDTHH:MM:SS, or
YYYY-MM-DDTHH:MM:SS+TIMEZONE
当我尝试将该字段保存到数据库中的模型时,如果数据没有时区信息,则会生成此错误。将该值保存到的字段在其模型中定义为:
my_timedate_field = models.DateTimeField()
至少我希望禁止在保存每条记录时生成警告。我能做些什么来使它更清洁一点吗?
编辑:警告是:
RuntimeWarning: DateTimeField my_timedate_field received a naive datetime while time zone support is active. RuntimeWarning)
每次处理api调用时,这些警告会显示在我的日志中 - 考虑到元素的显示方式,每次api调用有时会显示5-10次。
答案 0 :(得分:0)
我知道了。
事实证明-假设我不能完全依靠时区信息作为传入API传递的字符串的一部分-这是我所能做的最好的事情。
通过使用Django模型声明:
api_time = models.DateTimeField()
发送的不包含时区信息的时间值仍可以存储在该字段中。发生警告是为了通知您,您正在将非时区字段保存在可识别时区的数据库字段中。
再次-这是警告:
RuntimeWarning: DateTimeField api_time received a naive datetime
(2018-08-03 09:04:25) while time zone support is active.