동일한 장고 템플릿에서 동일한 {% 블록 %}을 (를) 두 번 사용하고 싶습니다 . 이 블록이 기본 템플릿에 두 번 이상 나타나기를 원합니다.
# 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
이름이 'title'인 'block'태그가 두 번 이상 나타납니다.
빠르고 더러운 해결책은 블록 제목 을 title1 과 title2 로 복제하는 것입니다 .
# blog.html
{% extends 'base.html' %}
{% block title1 %}My Blog{% endblock %}
{% block title2 %}My Blog{% endblock %}
그러나 이것은 DRY 원칙을 위반하는 것입니다. 상속 템플릿이 많고 지옥에 가고 싶지 않기 때문에 매우 어려울 것입니다. ;-)
이 문제에 대한 트릭이나 해결 방법이 있습니까? 모든 코드를 복제하지 않고 템플릿에서 동일한 블록을 어떻게 반복 할 수 있습니까?