テンプレートでUTC時間を現地時間に変換しようとしていますが、何らかの理由で次のようにしています。
{% load tz %}
{% localtime on %}
{{ value }}
{% endlocaltime %}
まだUTCの値を私に与えます
でも
{{ value|localtime }}
ローカルタイムゾーン設定を使用して値を取得します
settings.pyのUSE_TZをTrueに設定しても何も起こらないようです
私が間違っていることは何ですか?
テンプレートでUTC時間を現地時間に変換しようとしていますが、何らかの理由で次のようにしています。
{% load tz %}
{% localtime on %}
{{ value }}
{% endlocaltime %}
まだUTCの値を私に与えます
でも
{{ value|localtime }}
ローカルタイムゾーン設定を使用して値を取得します
settings.pyのUSE_TZをTrueに設定しても何も起こらないようです
私が間違っていることは何ですか?
これらすべてを処理するためのシンプルなミドルウェアを作成しました。
https://github.com/Miserlou/django-easy-timezones
インストールして指示に従うだけで完了です。
django-easy-timezones をインストールする
pip install django-easy-timezones pytz pygeoip
次のように、INSTALLED_APPS 設定に「easy-timezones」を追加します。
INSTALLED_APPS = (
...
'easy-timezones',
)
EasyTimezoneMiddleware を MIDDLEWARE_CLASSES に追加します
MIDDLEWARE_CLASSES = (
...
'easy-timezones.middleware.EasyTimezoneMiddleware',
)
設定ファイルにMaxMind GeoIP データベースへのパスを追加します。
GEOIP_DATABASE = '/path/to/your/geoip/database/GeoIP.dat'
テンプレートで localtime を有効にします。
{% load tz %}
The UTC time is {{ object.date }}
{% localtime on %}
The local time is {{ object.date }}
{% endlocaltime %}
多田!
表示しようとしている{{ value }}日付/時刻オブジェクトは、単純な datetime オブジェクトです。単純な日時オブジェクトはテンプレート タグでは変換されません - 最初の例ですが、テンプレート フィルターでは変換されます - 2 番目の例です。
「ナイーブ」は、日時オブジェクトの作成方法に関係しています。日付/時刻オブジェクトを時間を意識して変更する方法 - テンプレートタグで使用できるようにする方法 -このスレッドをチェックしてください