Je veux utiliser le même {% block %} deux fois dans la même django template. Je veux que ce bloc à apparaître plus d'une fois dans mon template de base:
# base.html
<html>
<head>
<title>{% block title %}My Cool Website{% endblock %}</title>
</head>
<body>
<h1>{% block title %}My Cool Website{% endblock %}</h1>
</body>
</html>
Et puis l'étendre:
# blog.html
{% extends 'base.html' %}
{% block title %}My Blog{% endblock %}
# pictures.html
{% extends 'base.html' %}
{% block title %}My Pictures{% endblock %}
# cats.html
{% extends 'base.html' %}
{% block title %}My Cats{% endblock %}
Je vais avoir une exception, comme Django veut le bloc à apparaître qu'une seule fois:
TemplateSyntaxError /
"en bloc" de la balise avec le nom "title" s'affiche plus d'une fois
Un moyen rapide et sale solution serait de dupliquer le bloc de titre en title1 et titre2:
# blog.html
{% extends 'base.html' %}
{% block title1 %}My Blog{% endblock %}
{% block title2 %}My Blog{% endblock %}
Mais c'est une violation de la SEC principe. Il serait très difficile, car j'ai beaucoup d'hériter de modèles, et aussi parce que je ne veux pas aller en enfer ;-)
Est-il une astuce ou de contourner ce problème? Comment puis-je répéter le même bloc dans mon template, sans recopier tout le code?