2012-07-29 30 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

相關問題