Voglio usare lo stesso {% block%} due volte nello stesso modello di django. Voglio che questo blocco appaia più di una volta nel mio modello di 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>
E poi estenderlo:
# 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 %}
Otterrò un'eccezione, poiché Django vuole che il blocco appaia una sola volta:
TemplateSyntaxError su /
Il tag "block" con il nome "title" appare più di una volta
Una soluzione rapida e sporca sarebbe la duplicazione del titolo del blocco in titolo1 e titolo2 :
# blog.html
{% extends 'base.html' %}
{% block title1 %}My Blog{% endblock %}
{% block title2 %}My Blog{% endblock %}
Ma questa è una violazione del principio DRY . Sarebbe molto difficile dato che ho molti modelli ereditari, e anche perché non voglio andare all'inferno ;-)
C'è qualche trucco o soluzione per questo problema? Come posso ripetere lo stesso blocco nel mio modello, senza duplicare tutto il codice?