IPython を使用して簡単なメールを送信しようとしています。モデルを設定していないのに、このエラーが発生します。どうすればよいでしょうか?
エラー: /home/sourabh/Django/learn/local/lib/python2.7/site-packages/django/db/models/fields/ init .py:827: RuntimeWarning: タイムゾーン サポートがアクティブであるにもかかわらず、DateTimeField が単純な datetime (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)
ベストアンサー1
問題は Django の設定ではなく、モデルに渡される日付にあります。タイムゾーン対応オブジェクトは次のようになります。
>>> 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)
したがって、電子メールの日付をどこかに渡す場合 (そして最終的に何らかのモデルに到達する場合)、Django の を使用してくださいnow()
。そうでない場合は、タイムゾーンなしで日付を取得する既存のパッケージに問題がある可能性があり、パッケージにパッチを適用するか、警告を無視するか、USE_TZ を False に設定することができます。