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时间对象时区感知,并避免这些警告。