djangoのテンプレートファイルで定数を使う

django

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 }}

コメント

タイトルとURLをコピーしました