2012-07-29 29 views
16

我有一个Django 1.4中的新项目,使用sqlite数据库。同时使用django_extenstions的shell_plus没有问题。Django IPython的sqlite抱怨天真的日期时间

当我安装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的时区的支持。

+0

@PeterStahl真实的,它不是一个真正的问题,只要我不从外壳创建日期时间,并将其保存到Django模型,也做在一年的“不确定”时间可能接近夏令时的变化等等等等。:)即使如此,Django也许会放弃警告。但仍然...好吧,它看起来不太好! :)) – frnhr 2012-08-22 20:24:45

+0

@PeterStahl也许写为答案... – frnhr 2012-08-27 23:24:58

+1

请参阅https://code.djangoproject.com/ticket/19738为Django的审议如何做这件事。到目前为止,还没有提出可口的解决方案。 – 2014-01-27 22:48:58

回答

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) 
+0

没错!好样的! – frnhr 2012-11-03 00:21:12

+3

太棒了,它完美的作品!只是为了更精确地把代码放在哪里:把它放到你的Django项目的'settings.py'文件中就足够了。您不需要为此创建另一个名为'local_settings.py'的文件。 – pemistahl 2012-11-04 19:13:10

+1

我不得不修改这一点warnings.filterwarnings(“忽略”,类别= exceptions.RuntimeWarning,模块='django.db.backends.sqlite3.base',lineno = 53) – yellottyellott 2013-05-22 02:21:47

-3

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

+1

是的,但我希望使用时区支持:) – frnhr 2012-08-22 19:28:53

+7

-1。这并不能解决问题,只是通过停用Django的有用和重要的时区设置来避开它。从版本1.4开始,不建议使用天真的日期时间。如果可以的话,总是使用注意日期时间。这可以防止以后出现很多问题。此外,此警告消息不会以任何方式影响IPython的行为,因此停用时区支持是没有意义的。 – pemistahl 2012-08-28 08:54:56

12

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

在处理一般意识日期时,我强烈建议使用pytz来达到此目的。

+0

我认为老实说,最好的选择是这一个; a.k.a.“只是和它一起生活。” – 2014-01-27 18:58:20

相关问题