1

我有一个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.htmlheader.html包含两者并同时扩展的正确方法是什么base.html

我尝试在 中添加{% include header.html %}一行auth.html,结构header.html如下:

{% extends "base.html" %}

{% block header %}

[HEADER CONTENT HERE]

{% endblock %}

但这没有用。我应该怎么做?

4

1 回答 1

2

你需要{{ block.super }}

如果您需要从父模板中获取块的内容,则 {{ block.super }} 变量可以解决问题。如果您想添加到父块的内容而不是完全覆盖它,这很有用。

它隐藏在模板继承文档中。


假设您想headerauth.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 %}
于 2013-02-14T05:42:31.127 回答