質問
子テンプレートのbodyタグのid属性を定義したいだけです。最初の解決策は完璧に機能します:
base.html:
[body{% block bodyid %}{% endblock %}]
child.html:
{% block bodyid %} id="myId"{% endblock %}
シンプルでクールです!しかし、私はid =" myId"を指すのは好きではありません。すべての子テンプレート内。値 'myId'を親テンプレートに送信して、id =" ...."に配置するだけです。そこで、私はこの方法を発明しました:
base.html:
[body{% block bodyid %} id={{ bodyid }}{% endblock %}]
child.html:
{% block bodyid %}
{% with 'myId' as bodyid %}
{{ block.super }}
{% endwith %}
{% endblock %}
しかし、最初のソリューションを比較するのはひどく退屈です。これを行うための良い方法はありますか?
この問題は、bodyIdの管理よりも深刻です。私は、標準のdjangoテンプレートの継承を通じてサブテンプレートシステムを見つけて整理しようとしていると思います。
解決
ベーステンプレート:
<body id="{% block bodyid %}{% endblock %}">
子テンプレート内:
{% block bodyid %}myId{% endblock %}
あなたの質問を正しく理解していれば、これはあなたが望むものを達成するのに十分なはずです。実際のID( myId
)のみをベーステンプレートに送信します。
他のヒント
必要に応じて、コードを使用してこれを設定します。これにより、IDがコンテキストオブジェクトの一部となり、そのため、子テンプレートに入力する必要がなく、それらを呼び出すビューだけになります。
次に、ベーステンプレートにコンテキストオブジェクトからIDを取得するように指示するか、単にテンプレート構文を使用することができます:
<body id="{{ body_id }}">
もちろんここでの個人設定は、テンプレートとビューの構造に依存しますが、その方法は私が行う方法です。
所属していません StackOverflow