1

データの変更を追跡するために django-audit-log を使用しています。かなり小さなことを除いて、これはうまく機能します。新しいエントリがログテーブルに追加されるたびに、警告が生成されます。

DateTimeField received a naive datetime while time zone support is active.

これを追跡したところ、ログ テーブルの action_date フィールドが原因であることがわかりました。この値をタイムゾーン対応にする方法を知っている人はいますか?

4

1 に答える 1

1

ここで pytz が役立つかもしれません。単純な日時をタイムゾーン対応のものに変換できます。http://pytz.sourceforge.net/をご覧ください。

この文字列 " " のような素朴な日付がある場合2012-02-21 10:28:45は、次のように処理できます。

from django.utils.dateparse import parse_datetime
naive = parse_datetime("2012-02-21 10:28:45")
import pytz
pytz.timezone("Europe/Helsinki").localize(naive, is_dst=None)
datetime.datetime(2012, 2, 21, 10, 28, 45, tzinfo=<DstTzInfo 'Europe/Helsinki' EET+2:00:00 STD>

( https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#usage )。

于 2013-08-15T14:56:37.653 に答える