LoginSignup
0

More than 1 year has passed since last update.

djangoでビューを通さずに、テンプレートの変数を設定する

Posted at

romです。

専門用語を使うならば、djangoでコンテキストプロセッサを使おう!という話なのですが、
コンテキストプロセッサという言葉を知らなければたどり着けないのでその言葉を使わないようにしておきます。

ビューの関数でテンプレートを使う際にコンテキストを設定して、テンプレートに変数を埋め込むというのはDjangoを使っているならばわかると思います。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(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',
                'myapp.[ファイル名].[関数名]'
            ],
        },
    },
]

djangoのルートディレクトリの、アプリ名/setting.pyのTEMPLTESの部分に'myapp.[ファイル名].[関数名]'
を追加してあげまして、
setting.pyと同じ階層にファイル名.pyというファイルを作り、[関数名]という関数を作ってあげて、返り値を辞書にすると
そのテンプレート変数が全てのテンプレートに適用されるようになるようです。

ビュー関数に前処理など手を加えなくても、テンプレート変数はこのように追加出来るのでメモをしておきました。

これでよくわからなかったら、django コンテキストプロセッサ と検索すれば詳細が書いてある記事にたどり着けると思います。

では、楽しいdjango生活を。

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