質問

子テンプレートの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 }}">

もちろんここでの個人設定は、テンプレートとビューの構造に依存しますが、その方法は私が行う方法です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top