3

この質問は、1つの小さな変更を除いて、これと少し似ています-

parent.htmlにブロックタグがあり、呼び出し元のテンプレートに入力されているものと、含まれているテンプレートに入力されているものがあります。付属のものは動作しません。例えば:

#parent.html
<head>{% block head %}Parent head {% endblock %} </head>
<body> {% block body %} Parent body {% endblock %} 
</body>

#include.html

{%block body %} Child body {% endblock %}

#child.html
{% extends 'parent.html' %}

{% block head %}
Child head 
{% endblock %}

{% include 'include.html' %}

しかし、これは出力を与えます:子の頭親の体

希望のintsead:

チャイルドヘッドチャイルドボディ

回避策はありますか?

4

1 に答える 1

3

これ :

{% include 'include.html' %}

応答で表示されるように、はどのブロックにも含まれず、レンダリングされません。

次のようにchild.htmlを変更します。

#child.html
{% extends 'parent.html' %}

{% block head %}
Child head 
{% endblock %}

{% block body %}
    {% include 'include.html' %}
{% endblock %}

child.htmlとinclude.htmlの両方でHTMLを定義する場合は、次のようにする必要があります。

#child.html
{% extends 'parent.html' %}

....

{% block body %}
    {% include 'include.html' %}
    some child html...
{% endblock %}

およびinclude.html:

{% block body %}
    {{ block.super }}
    some include html...
{% endblock %}

これにより、次のようにレンダリングされます。

some child html
some include html
于 2012-07-07T17:39:25.067 に答える