python - 通过扩展覆盖空白的包含 block ?

标签 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 block ,例如:

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 %}

最佳答案

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 %}

关于python - 通过扩展覆盖空白的包含 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15518300/

相关文章:

Python argparse 可选子参数

python - 具有定向字符的任意字符串的多序列比较

Django 管理员 : How do I filter on an integer field for a specific range of values

django - 如何检查是否在django模板中选中了复选框

javascript - 如何将 Django 中的数组传递给模板并与 JavaScript 一起使用

python - 除了性能之外,python 应用程序使用 C 有什么目的吗?

python - 如何替换 DataFrame (Python) 中字符串列表中的字符串?

python - Django:pycharm:未版本化的文件

javascript - 来自 {% for %} 的 Django 模板变量循环到 Javascript

django - 如何管理扩展通用基本模板的 Django 可重用应用程序模板?