Я хочу использовать тот же самый {% block%} дважды в том же шаблоне django. Я хочу, чтобы этот блок появлялся более одного раза в базовом шаблоне:
# base.html
<html>
<head>
<title>{% block title %}My Cool Website{% endblock %}</title>
</head>
<body>
<h1>{% block title %}My Cool Website{% endblock %}</h1>
</body>
</html>
И затем продолжите его:
# 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 %}
Я получу исключение, так как Django хочет, чтобы блок появлялся только один раз:
TemplateSyntaxError в /
Тег'block' с названием 'title' более одного раза
Быстрое и грязное решение будет дублировать заголовок блока в title1 и title2:
# blog.html
{% extends 'base.html' %}
{% block title1 %}My Blog{% endblock %}
{% block title2 %}My Blog{% endblock %}
Но это является нарушением принципа DRY. Это было бы очень сложно, так как у меня много наследующих шаблонов, а также потому, что я не хочу идти в ад, -)
Есть ли трюк или обход этой проблемы? Как я могу повторить один и тот же блок в своем шаблоне, не дублируя весь код?