zl程序教程

您现在的位置是:首页 >  其他

当前栏目

关于django html block继承模板不想显示个别内容块的处理办法

2023-03-15 23:27:28 时间

今天在做一个网站项目时候发现了一个问题,就是模板中有个别通用的内容块不想在某个页面中显示,找了一圈没有找到很好的办法,后面通过琢磨找到了解决的方法。 模板的代码: base.html

        <div id="proc_breadcrumb">
            <div class="container mt-2">
                    <nav aria-label="breadcrumb">
                      <ol class="breadcrumb">
                        <li class="breadcrumb-item"><a href="index.html">首页</a></li>
                        {% block cur_bread_page %}

                        {% endblock %}
                      </ol>
                    </nav>
            </div>
        </div>

以上代码如果不做特殊处理在进行模板继承的时候,会默认显示全部的内容,但是我不想在页面中显示此块的内容,只想在需要的页面中显示,所以在模板文件中在相应的内容块外增加一个外层的 block 坑块,代码如下:

{% block cur_breadcrumb %}
        <div id="proc_breadcrumb">
            <div class="container mt-2">
                    <nav aria-label="breadcrumb">
                      <ol class="breadcrumb">
                        <li class="breadcrumb-item"><a href="index.html">首页</a></li>
                        {% block cur_bread_page %}

                        {% endblock %}
                      </ol>
                    </nav>
            </div>
        </div>
{%endblock%}

然后在模板继承的时候:

  • 在需要的页面中只需要重写内容的内容,代码如下: about.html
{% block cur_bread_page %}
    <li class="breadcrumb-item active" aria-current="page">自己的内容</li>
{% endblock %}
  • 在不需要的页面中只写外层的block标签内容留空,这样内层的内容就不会显示了,代码如下: indexl.hmtl
{% block cur_title %}
<title>馨美优-主页</title>
{% endblock %}

{% block cur_breadcrumb %}

{% endblock %}

这只是我一个新手遇到的一个坑,如有刚好也遇到此问题的 猿友们,希望对你们帮助!!