PYTHON:RuntimeWarning:DateTimeField在时区支持处于活动状态时收到了一个天真的日期时间。 RuntimeWarning)

时间:2017-11-30 17:02:40

标签: python django datetime django-models timezone

我正在使用一个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次。

1 个答案:

答案 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.