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}}変数でうまくいきます。これは、親ブロックを完全にオーバーライドするのではなく、そのコンテンツに追加する場合に役立ちます。

テンプレートの継承ドキュメントに埋め込まれています。


headerのブロックに追加のものを追加したいとしますauth.htmlheaderで定義されてい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 に答える