47

Jinja2には、次のような基本テンプレートがあります。

<title>{% block title %}{% endblock %} - example.com</title>
[...]

<h1> 
  {% block title %}{% endblock %} - example.com
</h1>

次に、Jinja2は次のメッセージで失敗します。

  lines = [self.message, '  ' + location]
: block 'title' defined twice

TITLEタグとH1タグの2つの場所に同じタイトルを付けることは、私がやろうとしていることを明確にする必要がありますが、タイトルの一部は実際には他の派生テンプレートによって提供されます。

通常、これをどのように達成しますか?

4

2 に答える 2

90

hereに記載されているように、ブロックを定義すると、特別な「自己」オブジェクトにブロックの名前を持つマクロが作成されます。

<title>{% block title %}{% endblock %} - example.com</title>
[...]

<h1> 
  {{ self.title() }} - example.com
</h1>
于 2009-08-07T14:27:05.927 に答える