2009-08-07 11 views
26

En Jinja2, que tienen una plantilla base de la siguiente manera:múltiples bloques de mismo nombre en Jinja2

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

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

Jinja2, a continuación, se produce el siguiente mensaje:

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

Debe ser evidente ahora en cuanto a lo que estoy tratando de hacer: tener el mismo título en dos lugares: la etiqueta TITLE y la etiqueta H1, pero la parte del título la proporcionan otras plantillas derivadas.

¿Cómo se suele lograr esto?

Respuesta

53

como se documenta here, definiendo un bloque crea una macro con el nombre del bloque en el especial de "auto" objeto:

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

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