我有一个base.html
文件,如下所示:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
{% block header %}{% endblock %}
</head>
<body>
{% block content %}{% endblock %}
{% block footer %}{% endblock %}
</body>
</html>
我有一个文件,auth.html
扩展了这个:
{% extends "base.html" %}
{% block content %}
[MY CONTENT]
{% endblock %}
工作正常,但我也希望有一个单独的header.html
文件插入上面的header
块。
构建auth.html
和header.html
的正确方法是什么,以便同时包含这两者并同时扩展base.html
?
我尝试向{% include header.html %}
添加auth.html
行,并按如下方式构建header.html
:
{% extends "base.html" %}
{% block header %}
[HEADER CONTENT HERE]
{% endblock %}
但这不起作用。我该怎么做?
答案 0 :(得分:2)
您需要{{ block.super }}
:
如果您需要从父模板获取块的内容, {{block.super}}变量可以解决这个问题。如果,这很有用 您想要添加到父块的内容而不是 完全压倒它。
它隐藏在template inheritance文档中。
假设您要在header
中的auth.html
块中添加额外的内容。 header
中定义了index.html
:
您的auth.html
看起来像是:
{% extends "index.html" %}
{% block header %}
{{ block.super }}
Your extra stuff, which will come after whatever was in the header block
{% endblock %}