ฉันต้องการใช้{% 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 มันจะยากมากเพราะฉันมีเทมเพลตที่สืบทอดมามากมายและเพราะฉันไม่อยากตกนรก ;-)
มีเคล็ดลับหรือวิธีแก้ไขปัญหานี้หรือไม่? ฉันจะทำซ้ำบล็อกเดียวกันในเทมเพลตโดยไม่ต้องทำซ้ำรหัสทั้งหมดได้อย่างไร