覆盖包含的块通过extend是空白的?

时间:2013-03-20 08:10:48

标签: python django django-templates django-1.4

所以我有一个基本模板,其中包含一个标题:

base.html文件

{% include "header.html" %}

header.html中

<ul>
     <li><a>Link</a></li>
     <li><a>Link</a></li>
     <li><a>Link</a></li>
</ul>
{% block diskspace %}Test{% endblock %}

然后我想覆盖扩展基础的模板中的diskspace块,例如:

album.html

{% extends "base.html" %}
{% block diskspace %}
<p>You need more space!</p>
{% endblock %}

不幸的是,diskspace仅包含“Test”且未被覆盖。

我正在尝试做什么,还是我需要走另一条路?

根据下面的sergzach的回答,这是我最终实现的内容:

header.html中:

<ul>
     <li><a>Link</a></li>
     <li><a>Link</a></li>
     <li><a>Link</a></li>
</ul>
{% if show_diskspace %}
    <p>You need more space!</p>
{% endif %}

base.html文件

{% block header %}
    {% include "header.html" %}
{% endblock %}

album.html

{% extends "base.html" %}
{% block header %}
    {% include "header.html" with show_diskspace="True" %}
{% endblock %}

1 个答案:

答案 0 :(得分:2)

<强> header.html中

    <ul>
         <li><a>Link</a></li>
         <li><a>Link</a></li>
         <li><a>Link</a></li>
    </ul>

{{diskspace}}

<强> base.html文件

{% block header %}
    {% include "header.html" with diskspace='Test'%}
{% endblock %}

<强> album.html

{% extends "base.html" %}
{% block header %}
    {% include "header.html" with diskspace='<p>You need more space!</p>'|safe %}
{% endblock %}