无法使用Django Includes访问标签

cus*_*ice 1 django

我有以下设置.

base.html文件

<html>
 //etc
<body>
    {% include "partials/footer.html" %}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

谐音/ footer.html

<div class="footer">
    <h2>{% block footer_headline %}Default footer headline{% endblock %}</h2>
</div>
Run Code Online (Sandbox Code Playgroud)

page1.html

{% extends 'base.html' %}
{% block footer_headline %}NEW Footer Headline {% endblock %}
Run Code Online (Sandbox Code Playgroud)

但是,页脚标题不会改变.我究竟做错了什么?

Tar*_*req 6

这是一个记录在案的限制.请参阅文档:https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from = olddocs#include

include标记应该被视为"渲染此子模板并包含HTML"的实现,而不是"解析此子模板并将其内容包含在内,就好像它是父类的一部分".这意味着包含的模板之间没有共享状态 - 每个包含都是完全独立的渲染过程.在包含块之前对块进行评估.这意味着包含来自另一个块的块的模板将包含已经评估和呈现的块 - 而不是可以被扩展模板覆盖的块.

最简单的解决方案是不包含包含要覆盖的块的模板.只需将页脚标记放在base.html中