[Django] プロジェクトの作成にカスタムテンプレートを利用する
Djangoでいくつかプロジェクトを作っていると大体、自分なりのプロジェクトの雛形っていうのができてくると思います。
毎回、デフォルトのテンプレートから作成するのは面倒です。
そこで、プロジェクトを作成する時のstartprojectやアプリケーションを追加するときのstartappで生成されるテンプレートをカスタマイズしてみようというお話です。
カスタムテンプレートを作成する
カスタムテンプレートの実態は普段のDjangoのテンプレートと同じです。
なので、Djangoテンプレートの文法を利用してpythonのプログラムを記述することになります。
カスタムテンプレートの拡張子は.py-tpl
です。
テンプレート内で利用できる変数名は、
プロジェクトなら
project_name
project_directory
camel_case_project_name
アプリケーションなら
app_name
app_directory
camel_case_app_name
です。
どちらでも共通して使えるのは、
docs_version
django_version
に加えて、コマンドの引数に渡したオプションです。
こんな感じで追加してみました。
app_template
├── __init__.py-tpl
├── admin.py-tpl
├── apps.py-tpl
├── forms.py-tpl
├── migrations
│ └── __init__.py-tpl
├── models.py-tpl
├── tests.py-tpl
├── urls.py-tpl
└── views.py-tpl
カスタムテンプレートを利用する
早速先ほど作ったテンプレートを利用してプロジェクトを作成してみます。
startapp
コマンドの引数に--template
オプションを付与します。--template
オプションの引数にはカスタマイズしたテンプレートがあるディレクトリへのパスを指定します。
python manage.py startapp --template path/to/templates
これで毎回の面倒な作業から少し解放されます。