|
template_name = 'index.html' return render(request, template_name) |
djangoにおいて上記の様に単にindex.htmlを指定するだけでは非常に危険です。
djangoは自動的にルートディレクトリおよびアプリケーションディレクトリ直下とtemplatesフォルダ内のテンプレート名を取得します。
もし仮に異なるアプリ間で同名のindex.htmlが存在すると、意図しないindex.htmlが読み込まれる可能性があります。
従ってテンプレート名を指定する場合はアプリケーション名込みで指定する必要があります。
まずテンプレートディレクトリの配置構造を以下の様にしましょう。
|
プロジェクト名/ |
少し冗長的ですが、静的ファイルのディレクトリ構造と同様にテンプレートも上記のような構造にする必要があります。
ビューからの呼び出しは以下の様に指定します。
|
template_name = 'calculator/index.html' return render(request, template_name) |