16

sqlitedbを使用したDjango1.4の新しいプロジェクトがあります。また、django_extenstionsのshell_plusを問題なく使用しています。

IPythonをインストールしたとき、両方ともshell次のshell_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のタイムゾーンサポートを無効にしたくありません。

4

3 に答える 3

15

私はこれを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)
于 2012-11-02T11:23:44.420 に答える
12

私も同じ問題を抱えていますが、それは本当に問題ではないと思います。IPythonは内部でナイーブな日時を使用しているようで、Djangoはそれについて警告します。Djangoは、タイムゾーンサポートをオンにしたとき、およびナイーブな日時を検出したときに、常にこの警告を送信します。私のマシンでは、この警告はIPythonを起動または閉じるときにのみ表示されます。この警告は、IPythonでの作業にはまったく影響しません。そのため、通常はIPython内で認識可能な日時を安全に作成し、データベースに保存することもできます。その警告を取り除くには、おそらくIPythonの内部で作業する必要があります。

一般的に認識された日時で作業する場合は、この目的でpytzを使用することを強くお勧めします。

于 2012-08-28T08:47:30.037 に答える
-3

settings.pyを変更し、USE_TZをFalseに設定すると、この問題が解決します。

于 2012-08-22T03:07:37.797 に答える