RuntimeWarning:DateTimeField myTable.test收到一个天真的日期时间

时间:2017-09-07 07:03:11

标签: django python-2.7 django-models

尝试将一些记录发送到我的数据库中。我按以下格式发送日期:

  

2017-08-06 00:41:58

但收到消息:

RuntimeWarning: DateTimeField myTable.test received a naive datetime (2017-08-06 00:41:58) while time zone support is active.

记录正确保存,但为什么我会看到此消息?

我的模特:

class test(models.Model):       
    s_date = models.DateTimeField( verbose_name="Date" )
    s_value = models.CharField(max_length=25, verbose_name="Value")

    def __unicode__(self):
        return str(self.s_date)+'-'+str(self.s_value)

提前致谢,

2 个答案:

答案 0 :(得分:2)

从字符串设置日期时间时(在单元测试中),我遇到了此问题。我的解决方案不是更改日期时间/时区代码,而是更改我的日期时间字符串:

OLD:2018-11-08 00:00:00> RuntimeWarning

NEW:2018-11-08 00:00:00+00:00>无警告

我看到了很多与RuntimeWarning相关的问题,但是都没有解决我的特定问题。

答案 1 :(得分:1)

您收到该错误,因为在设置中您有USE_TZ = True,这实际上意味着数据库需要时区时间

所以在你使用py datetime的任何地方都将其改为django timezone time

例如

from django.utils import timezone

time = models.DateTimeField(timezone.now())