RuntimeWarning:DateTimeField收到一个天真的date时间
我试图发送一个简单的邮件使用IPython。 我还没有设置任何模型仍然得到这个错误。 可以做什么?
错误:/home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/models/fields/ init .py:827:RuntimeWarning:DateTimeField收到一个天真的date时间(2013-09-04 14:14:13.698105),而时区支持处于活动状态。 RuntimeWarning)
试过:第一步是将USE_TZ = True
添加到您的设置文件并安装pytz
(如果可能的话)。
错误更改:
(learn)sourabh@sL:~/Django/learn/event$ python manage.py shell /home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:53: RuntimeWarning: SQLite received a naive datetime (2013-09-05 00:59:32.181872) while time zone support is active. RuntimeWarning)
问题不在于Django设置,而是在传递给模型的date 。 下面是时区感知对象的样子:
>>> from django.utils import timezone >>> import pytz >>> timezone.now() datetime.datetime(2013, 11, 20, 20, 8, 7, 127325, tzinfo=pytz.UTC)
这是一个天真的对象:
>>> from datetime import datetime >>> datetime.now() datetime.datetime(2013, 11, 20, 20, 9, 26, 423063)
所以如果你在任何地方通过电子邮件date(并且最终到达某个模型), now()
就使用Django的now()
。 如果不是,那么现有的包可能会提取没有时区的date,并且可以修补软件包,忽略警告或将USE_TZ设置为False。
这里是关于你正在面对的时区和灯具的问题的文档
使用django.utils.timezone.make_aware函数使您的天真date时间对象时区感知,并避免这些警告。