2009-08-07 11 views
26

In Jinja2 habe ich eine Basisvorlage wie folgt aus:Mehrere Blöcke gleichen Namens in Jinja2

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

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

Jinja2, dann mit der folgenden Meldung fehlschlägt:

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

Es muss jetzt klar sein, Was ich versuche zu tun - denselben Titel an zwei Stellen zu haben: das TITLE-Tag und das H1-Tag, aber der Teil des Titels wird tatsächlich von anderen abgeleiteten Templates bereitgestellt.

Wie erreicht man das normalerweise?

Antwort

53

Wie dokumentiert here, die einen Block mit dem Namen des Blockes in dem speziellen „Selbst“ Objekt ein Makro erstellt:

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

<h1> 
    {{ self.title() }} - example.com 
</h1>