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