デバッグ判断させるプログラムを作成
アプリケーションディレクトリに、custom_context.py
を作成する。
app/custom_context.py
from django.conf import settings
# HTMLテンプレートでデバッグ判断させられるようにする
def is_debug(request):
return {"DEBUG": settings.DEBUG}
設定を追加
コンフィグディレクトリのsettings.py
のテンプレート設定部分を編集する。
config/settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
BASE_DIR / 'templates'
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'base.custom_context.is_debug', # app/custom_context.py
],
},
},
]
使い方
settings.pyに記述されているDEBUGの値がHTMLテンプレートに渡されてくる。
これでテンプレートファイルでデバッグモードかどうか判断できるようになった。
template_name.html
{% if DEBUG %}
<!-- This is template_name.html -->
{% endif %}
テンプレートに渡した値を表示しても良いし、ログインしているユーザー名を表示させてもいい。応用次第で色々と使えます。
custom_context.py
は、すべてのHTMLテンプレートに同じデータを渡すことができるので、こちらも応用が効くと思います。