djangoのテンプレートファイルで定数を使用したかったが、
テンプレートファイル自体に直接定義が出来ず何か方法がないか調べたところ
djangoにはContext Processorという機能があったので、その機能を利用して定数を使ってみた
まずはContext Processorを作成
Context Processerを利用するには以下のような定義ファイルをmanage.py startappで作成されたフォルダに作成する必要がある。
今回は辞書を定義してみた。
def const(request):
return {
'dict' : {
'key1': 'キー1',
'key2': 'キー2',
}
}
作成したContext Processorをsettings.pyに追記
Context Processorを作成したら、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',
'<app名>.〈定義ファイル名〉.〈定義ファイルで定義した関数名〉' #追記
],
},
},
]
settings.pyに追記したらテンプレートファイルから参照するだけ
settings.pyへの追記が済んだら、テンプレートファイルから参照できるようになる
{{ dict.key1 }}
{{ dict.kwy2 }}
コメント