テンプレートでは、テンプレートタグの戻り値を使用してサブテンプレートの親テンプレートを決定したいと思います。
これはテンプレートタグです。アプリのラベル(パッケージ名)を返し、拡張する対応するテンプレート名を追加します。
{% app_label request.path %}
今私がしたいのはこれです:
{% extends app_label %}
これは可能ですか?
テンプレートでは、テンプレートタグの戻り値を使用してサブテンプレートの親テンプレートを決定したいと思います。
これはテンプレートタグです。アプリのラベル(パッケージ名)を返し、拡張する対応するテンプレート名を追加します。
{% app_label request.path %}
今私がしたいのはこれです:
{% extends app_label %}
これは可能ですか?
それは可能ではありません。{% extends %}
タグは、テンプレート(ソース)の最初のテンプレートタグである必要があります。
テンプレートで使用する場合は
{% extends %}
、そのテンプレートの最初のテンプレートタグである必要があります。そうしないと、テンプレートの継承は機能しません。
つまり、テンプレートの名前で変数を作成するために、その前に別のテンプレートタグを置くことはできません。
ただし、ビューでテンプレートタグ関数を呼び出して(おそらくリファクタリング後に)、変数をテンプレートコンテキストに追加することができます。{% extends ... %}
これは、タグで使用できる通常の変数です。
私はコンテキストプロセッサで問題を解決しました:
def app_label_processor(request):
return {
'app_base_template': resolve(request.path).app_name
}
それから私はこれを使うことができます:
{% extends app_base_template %}
あなたがする必要があるのは
RequestContext
テンプレートのレンダリングに使用します。