Ich möchte dasselbe {% block%} zweimal in derselben Django-Vorlage verwenden. Ich möchte, dass dieser Block mehr als einmal in meiner Basisvorlage angezeigt wird:
# base.html
<html>
<head>
<title>{% block title %}My Cool Website{% endblock %}</title>
</head>
<body>
<h1>{% block title %}My Cool Website{% endblock %}</h1>
</body>
</html>
Und dann erweitern Sie es:
# 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 %}
Ich werde eine Ausnahme bekommen, da Django möchte, dass der Block nur einmal erscheint:
TemplateSyntaxError at /
Das Tag 'block' mit dem Namen 'title' wird mehrmals angezeigt
Eine schnelle und schmutzige Lösung würde den Block sein Duplizieren Titel in title1 und title2 :
# blog.html
{% extends 'base.html' %}
{% block title1 %}My Blog{% endblock %}
{% block title2 %}My Blog{% endblock %}
Dies ist jedoch ein Verstoß gegen das DRY- Prinzip. Es wäre sehr schwierig, da ich viele Vorlagen erbe und auch, weil ich nicht zur Hölle fahren will ;-)
Gibt es einen Trick oder eine Lösung für dieses Problem? Wie kann ich denselben Block in meiner Vorlage wiederholen, ohne den gesamten Code zu duplizieren?