문제

다음을 수행하고 싶습니다.

{% if appnav %}
<hr />
<div id="appnav">
    <ul class="tabs">
        {% block appnav %}{% endblock %}
    </ul>
</div>
{% endif %}

... 그러나 상속 체인을 더 아래로 내려가는 템플릿으로 블록의 현재 사용을 테스트하는 것은 작동하지 않는 것 같습니다.

이것을 할 수있는 다른 조건부가 있습니까?

도움이 되었습니까?

해결책

템플릿 언어는 원하는 것을 정확히 제공하지 않습니다. 어린이 템플릿은 부모 블록을 호출 할 수 있습니다 {{ block.super }}, 그러나 부모 템플릿은 하위 템플릿을 참조 할 수 없습니다.

가장 좋은 방법은 아마도 사용자 정의 템플릿 태그를 작성하는 것입니다. 검토 할 템플릿 설명서에는 두 개의 섹션이 있습니다.

첫 번째, 다른 블록 태그까지 구문 분석. 이것은 당신에게 구문 분석 방법의 기본 사항을 줄 것입니다.

초, 다른 블록 태그 및 내용을 저장 할 때까지 구문 분석. 사용자 정의 태그 내부에 블록 태그를 배치하면 컨텐츠를 감지하고 적절하게 감을 수 있습니다. 내부 블록 태그가 먼저 구문 분석 될 것이라고 생각하기 때문에 이것은 작동해야합니다. 그렇지 않은 경우 Django가 제공 한 기존 블록 템플릿 태그를 서브 클래스하여 특별한 마술을 구현하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top