Tim*_*ony 13 django django-templates
我有以下内容:
base.html文件
<html>
{% include 'header.html' %}
<div>
{% block content %}Default Content{% endblock %}
</div>
</html>
Run Code Online (Sandbox Code Playgroud)
了header.html
<header>
{% block logo %}Logo 1{% endblock %}
</header>
Run Code Online (Sandbox Code Playgroud)
homepage.html
{% extend 'base.html' %}
{% block logo %}Logo 2{% endblock %}
{% block content %}Yap Yap Yap{% endblock %}
Run Code Online (Sandbox Code Playgroud)
从本质上讲,这不起作用.当我渲染homepage.html我得到:
<html>
<header>Logo 1</header>
<div>Yap Yap Yap</div>
</html>
Run Code Online (Sandbox Code Playgroud)
但如果我将代码header.html移入base.html(即include完全摆脱)它可以正常工作.任何人都可以解释为什么会这样吗?
我觉得它与included父母被渲染后渲染的模板有什么关系?
这是一个已知的限制,我们希望在不久的将来能够解决.
顺便说一句,假设你有一个你提到的更复杂的问题,另一个解决方法是使标题成为一个块,而不是用一个新的自定义包覆盖这个块.
base.html文件
<html>
{% block header %}
{% include 'header.html' %}
{% endblock %}
<div>
{% block content %}Default Content{% endblock %}
</div>
</html>
Run Code Online (Sandbox Code Playgroud)
了header.html
<header>
{% block logo %}Logo 1{% endblock %}
</header>
Run Code Online (Sandbox Code Playgroud)
homepage.html
{% extends 'base.html' %}
{% block header %}
{% include 'homepage_header.html' %}
{% endblock %}
{% block content %}Yap Yap Yap{% endblock %}
Run Code Online (Sandbox Code Playgroud)
homepage_header.html
{% extends 'header.html' %}
{% block logo %}Logo 2{% endblock %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4612 次 |
| 最近记录: |