尝试将一些记录发送到我的数据库中。我按以下格式发送日期:
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)
提前致谢,
答案 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())