문제

하위 템플릿에서 Body Tag의 ID 속성을 정의하고 싶습니다. 첫 번째 솔루션은 완벽하게 작동합니다.

base.html :

[body{% block bodyid %}{% endblock %}]

child.html :

{% block bodyid %} id="myId"{% endblock %}

간단하고 시원합니다! 그러나 나는 모든 어린이 템플릿에서 id = "myid"를 가리키는 것을 좋아하지 않습니다. ID = "...."에 넣는 부모 템플릿에 값을 'myid'를 보내고 싶습니다. 그래서 나는이 방법을 발명했다 :

base.html :

[body{% block bodyid %} id={{ bodyid }}{% endblock %}]

child.html :

{% block bodyid %}
    {% with 'myId' as bodyid %}
        {{ block.super }}
    {% endwith %}
{% endblock %}

그러나 첫 번째 솔루션을 비교하는 것은 끔찍하고 지루합니다. 이것을하는 좋은 방법이 있습니까?

이 문제는 차체를 관리하는 것보다 더 깊습니다. 표준 Django 템플릿의 상속을 통해 하위 템플릿 시스템을 찾고 구성하려고 노력합니다.

도움이 되었습니까?

해결책

기본 템플릿에서 :

<body id="{% block bodyid %}{% endblock %}">

어린이 템플릿에서 :

{% block bodyid %}myId{% endblock %}

내가 당신의 질문을 올바르게 이해한다면, 이것은 당신이 원하는 것을 달성하기에 충분해야합니다. 실제 ID 만 보내십시오 (myId) 기본 템플릿에.

다른 팁

귀하가 원하는 경우, 귀하의 코드를 통해이를 설정하십시오. 신분증이 컨텍스트 객체의 일부가되므로 하위 템플릿에 입력 할 필요가 없으며, 전화하는 뷰 만 있습니다.

그런 다음 기본 템플릿을 컨텍스트 객체에서 ID를 가져 오거나 템플릿 구문을 사용하도록 지시 할 수 있습니다.

<body id="{{ body_id }}">

물론 여기서 개인적인 취향은 템플릿과 뷰의 구조에 달려 있지만, 내가하는 방식입니다.

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