Plusieurs blocs de même nom dans Jinja2
Question
Jinja2 , j'ai un modèle de base comme ceci:
<title>{% block title %}{% endblock %} - example.com</title>
[...]
<h1>
{% block title %}{% endblock %} - example.com
</h1>
Jinja2, puis, échoue avec le message suivant:
lines = [self.message, ' ' + location]
: block 'title' defined twice
Il doit être maintenant évident à ce que je suis en train de faire - d'avoir le même titre en deux endroits:. La balise TITLE et la balise H1, mais la partie du titre est effectivement fourni par d'autres modèles dérivés
Comment peut-on atteindre en général cela?
Autres conseils
L'idée est de créer un bloc à l'intérieur d'une macro, puis appeler deux fois macro, au lieu d'avoir la balise « bloc » répété deux fois.
Dans dernière version Jinja2 ceci fonctionne:
layout.html
{%- extends "base.html" -%}
{%- macro duplicated() -%}
{% block overrideninchild %}{% endblock %}
{%- endmacro -%}
{% block base_content %}
{{ duplicated() }}
{{ duplicated() }}
{% endblock %}
child_page.html
{%- extends "layout.html" -%}
{% block overrideninchild %}
Should be visible twice.
{% endblock %}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow