2009-08-07 6 views
26

W Jinja2, mam szablon bazowy tak:Wiele bloków samej nazwie w Jinja2

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

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

Jinja2 więc nie powiedzie się z następującym komunikatem:

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

Należy teraz widoczne co do tego, co próbuję zrobić - mieć ten sam tytuł w dwóch miejscach: tag TITLE i tag H1, ale część tytułu jest faktycznie dostarczana przez inne wyprowadzone szablony.

Jak zwykle się to odbywa?

Odpowiedz

53

Jak udokumentowano here, definiując blok tworzy makra z nazwą bloku w specjalnym „ja” obiektu:

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

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