RuntimeWarning: DateTimeField は単純な datetime を受け取りました 質問する

RuntimeWarning: DateTimeField は単純な datetime を受け取りました 質問する

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 に設定することができます。

おすすめ記事