やりたいこと

  • サイト全体で共通の文言をどのページでも表示したい。
  • テンプレートをincludeするのではなく、settings.pyに定数(のように)定義しておいて表示したい。
  • 要は、デプロイ環境によって変化させたい。

手順

app_dir/context_processors.py を作成

※settings.pyと同じディレクトリ

from django.conf import settings

def site_common_text(request):
    return {'SITE_COMMON_TEXT': settings.SITE_COMMON_TEXT}

settings.pyにcontext_processorsを記述

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'app_dir.context_processors.site_common_text',  # <-append
                ...

settings.pyに定数を記述

SITE_COMMON_TEXT = "this is common text in this site"

テンプレートに記述

{{ SITE_COMMON_TEXT }}

facebook slideshare rubygems github qiita