Djangoで自動生成される管理画面は、デフォルトだと以下のような見た目となっている。

今回はこの管理画面のビューを構成するテンプレートを作り、ヘッダーのタイトルテキストを変更する方法を紹介する。

templatesディレクトリの作成

まず、管理画面テンプレート用のディレクトリを以下に作成する。

$project_name/templates/admin
※mysite/templates/admin

設定ファイルの更新

次に、mysite/setting.pyを開き、TEMPLATES変数のDIRSオプションに以下を追加する。

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',
            ],
        },
    },
]

テンプレートファイルの作成

デフォルトのテンプレートをオーバーライド(上書き)するために、元のテンプレートを先程作成したtemplatesディレクトリに複製する。

デフォルトのテンプレートファイルはインストールしたDjangoのディレクトリ内にある。
Djangoのパスは以下のコマンドで調べることができる。

python -c "import django; print(django.__path__)"

返ってきたディレクトリへ移動し、さらにcdコマンドでテンプレートディレクトリへ移動する。

cd contrib/admin/templates/admin

この中のbase_site.htmlというファイルを、mysite/templates/adminへコピーする。

テンプレートファイルの編集

最後に、コピーしてきたbase_site.htmlのH1タグを以下のように修正すればOK。

<h1 id="site-name"><a href="{% url 'admin:index' %}">Polls Administration</a></h1>

管理画面をリロードすると、以下のようにタイトルテキストが変更されているはずだ。