我有以下设置.
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)
但是,页脚标题不会改变.我究竟做错了什么?
这是一个记录在案的限制.请参阅文档:https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from = olddocs#include
include标记应该被视为"渲染此子模板并包含HTML"的实现,而不是"解析此子模板并将其内容包含在内,就好像它是父类的一部分".这意味着包含的模板之间没有共享状态 - 每个包含都是完全独立的渲染过程.在包含块之前对块进行评估.这意味着包含来自另一个块的块的模板将包含已经评估和呈现的块 - 而不是可以被扩展模板覆盖的块.
最简单的解决方案是不包含包含要覆盖的块的模板.只需将页脚标记放在base.html中
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |