Django模板包括覆盖<h1>标签

时间:2017-09-13 14:07:07

标签: django

我有以下html文件。

banner.html

   <header class="intro2">
        <div class="intro-body">
            <div class="container">
                <div class="row">
                    <div class="col-md-8 col-md-offset-2">
                       <h1>{% block banner %}Bannertest{% endblock banner %}</h1>
                    </div>
                </div>
            </div>
        </div>
    </header>

的test.html

{% extends 'banner.html' %}
    {% block banner %}
    Test
   {% endblock banner %}

我是Django的新手,但是我希望将H1标题更新为Test而不是Bannertest?

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要扩展主html而不包含 取代

{% include 'banner.html' %} 

{% extends "banner.html" %}

更多详细信息:include-vs-extends

你全新的HTML:

{% extends 'banner.html' %}
{% block banner %}Test{% endblock banner %}

答案 1 :(得分:0)

对于阻止覆盖,您必须使用{% extends 'banner.html' %}代替{% include %}

因此,不像在php中制作包含的小片段,标准方法是在子模板中扩展它时制作完整的模板,比如base.html

{% include %}标记更适合带参数的小部件,例如{% include '_form.html' style='light' some_param=some_value %}