0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Djangoで時刻をユーザーの地域(UTC)に合わせて表示させる

Posted at

django-tz-detect を使う。 (ソースコードはこちら
2019年にリリースされたオープンソースライブラリで、MITライセンス適用済。
<実行環境>
Python:3.7.4 Django:2.2.17

###1.ライブラリのインストール

pip install django-tz-detect

###2.setting.pyを編集

####INSTALLED_APPSの末尾に以下を追加

setting.py

INSTALLED_APPS (
    'tz_detect',#追加
)

####TEMPLATESに'django.template.context_processors.request'があるか確認(なければ追加)

setting.py
TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'django.template.context_processors.request',#なければ追加
            ],
        },
    },
]

####MIDDLEWAREの末尾にtz_detect.middleware.TimezoneMiddlewareを追加

setting.py

MIDDLEWARE = (
    'tz_detect.middleware.TimezoneMiddleware',#追加
)

###3.url を追加する

urls.py
urlpatterns = [
    url(r'^tz_detect/', include('tz_detect.urls')),#追加
]

###4.HTMLの編集

####先頭に{% load tz_detect %}、bodyタグ内に{% tz_detect %}を追加
この時、{% tz_detect %}は読み込みの関係で</body>の直前に記述するのが望ましい。

base.html
{% load tz_detect %}
<head></head>
<body>
{% tz_detect %}
</body>

タイムゾーンの設定を変更して、ブラウザを上げなおして完成。
(反映まで1~2分かかることもある)

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?