背景
- Djangoでプロジェクト内に複数のアプリがある場合に、サイト全体でスタイルを統一したい。
環境
- Python 3.7.0 (3.7.1が出ていて、3.7.2も近々リリースされるので、入れ替え予定です)
- Django 2.1.3
やり方
- プロジェクト直下にtemplatesフォルダを作成
- 上記で作成したフォルダに、sitebase.htmlを作成(サイト全体でユニークな名前にする)
- settings.pyを修正し、テンプレートを探すフォルダに上記を追加
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates')], # ここを変更
'APP_DIRS': True,
'OPTIONS': {
(略)
},
},
]
上記のsitebase.htmlにHTMLを記述
アプリ側のテンプレートで、上記を呼び出す。
{% extends 'sitebase.html' %}
感想
Djangoで静的ファイルをどこに置いてsettings.pyをどう書くのがベストか、まだ悩んでいます。