Saya ingin menggunakan {% block%} yang sama dua kali dalam template Django yang sama. Saya ingin blok ini muncul lebih dari satu kali di templat dasar saya:
# base.html
<html>
<head>
<title>{% block title %}My Cool Website{% endblock %}</title>
</head>
<body>
<h1>{% block title %}My Cool Website{% endblock %}</h1>
</body>
</html>
Dan kemudian memperluasnya:
# 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 %}
Saya akan mendapatkan pengecualian, karena Django ingin blok hanya muncul sekali:
TemplateSyntaxError di /
tag 'blokir' dengan nama 'judul' muncul lebih dari satu kali
Solusi cepat dan kotor akan menduplikasi judul blok ke title1 dan title2 :
# blog.html
{% extends 'base.html' %}
{% block title1 %}My Blog{% endblock %}
{% block title2 %}My Blog{% endblock %}
Tapi ini merupakan pelanggaran prinsip KERING . Ini akan sangat sulit karena saya memiliki banyak template yang mewarisi, dan juga karena saya tidak ingin pergi ke neraka ;-)
Apakah ada trik atau penyelesaian masalah ini? Bagaimana saya bisa mengulangi blok yang sama di template saya, tanpa menduplikasi semua kode?