Django IPython sqlite抱怨天真的日期时间

时间:2012-07-29 11:21:56

标签: django ipython pytz

我在Django 1.4中有一个新项目,使用sqlite db。同时使用django_extenstions的shell_plus也没有问题。

当我安装IPython时,shellshell_plus都开始抱怨:

/path/to/my/virtualenv/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:50:
RuntimeWarning: SQLite received a naive datetime (2012-07-29 13:15:45.229464) while time zone support is active.

似乎IPython本身使用不知不觉的日期时间。如何解决这个问题?

编辑:

我不想禁用Django的时区支持。

3 个答案:

答案 0 :(得分:14)

我把它放在我的local_settings.py:

#ignore the following error when using ipython:
#/django/db/backends/sqlite3/base.py:50: RuntimeWarning:
#SQLite received a naive datetime (2012-11-02 11:20:15.156506) while time zone support is active.

import warnings
import exceptions
warnings.filterwarnings("ignore", category=exceptions.RuntimeWarning, module='django.db.backends.sqlite3.base', lineno=53)

答案 1 :(得分:12)

我有同样的问题,但我认为这不是一个问题。 IPython似乎在内部使用天真的日期时间,而Django只是警告它。当你打开时区支持并且每当它检测到天真的日期时间时,Django总是发送此警告。在我的机器上,此警告仅在我启动或关闭IPython时出现。此警告不会以任何方式影响您使用IPython的工作。因此,您可以安全地在IPython中创建通知日期时间,并将它们保存到您的数据库中。为了摆脱这个警告,你可能不得不在IPython的内部工作。

在处理一般的感知日期时间时,我强烈建议您使用pytz来实现此目的。

答案 2 :(得分:-3)

修改settings.py,将USE_TZ设置为False将解决此问题。