Quiero usar el mismo {% block%} dos veces en la misma plantilla de django. Quiero que este bloque aparezca más de una vez en mi plantilla 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>
Y luego extiéndelo:
# 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 %}
Obtendré una excepción, ya que Django quiere que el bloque aparezca solo una vez:
TemplateSyntaxError en /
La etiqueta 'block' con el nombre 'title' aparece más de una vez
Una solución rápida y sucia sería duplicar el bloque de título en título1 y title2 :
# blog.html
{% extends 'base.html' %}
{% block title1 %}My Blog{% endblock %}
{% block title2 %}My Blog{% endblock %}
Pero esto es una violación del principio DRY . Sería muy difícil ya que tengo muchas plantillas heredadas, y también porque no quiero ir al infierno ;-)
¿Hay algún truco o solución para este problema? ¿Cómo puedo repetir el mismo bloque en mi plantilla, sin duplicar todo el código?