우리는 Django 프로젝트에서 Mako Templates를 사용하기로 결정했습니다. 재사용 가능한 많은 앱 (당연히)이 장고 템플릿을 사용할 수 있다고 가정하기 때문에 장고 템플릿도 지원합니다. 장고 템플릿을 Mako에서 렌더링하는 것이 가능하다는 것을 알았지 만, 다른 방법으로 그 템플릿을 사용할 수있는 방법을 찾지 못했습니다.Django 템플릿을 Mako 템플릿 내에서 렌더링하려면 어떻게해야합니까?
방금 django-articles를 Django 템플릿 목록에 추가했습니다. base.html
파일이 오버라이드 된 Django 템플릿이라고 가정합니다. 불행히도, 우리의 주요 사이트는 Mako를 사용하여 만들어졌습니다. 나는 아직 Mako 내에서 host
자신에 대한 장고 템플릿 깨끗한 방법을 알아낼 수 없습니다.
내가 원한다고 생각하는 것은 마코에게 전화를 걸어 '임베디드'를 요청하는 템플릿 태그입니다.
{% render_in_mako 'mako/base.html' 'body' %}
을 청상 아리`에서 다음으로 :
<%inherit file="mako/base.html"/>
내가 원하는 것은 장고 템플릿에서 이런 일을 할 수있을 것입니다 :
우리의 마코는 현재 다음과 같이 모든 템플릿 /base.html ':
</head>
<body>
<%include file="header.html" />
${next.body()}
</body>
</html>
누구든지 전에해야 했습니까? 템플릿 태그 작성에 익숙하지 않습니다. 이것이 가능하다고 생각하십니까? 대안은 아마도 Mako에있는 모든 템플릿을 다시 쓰는 것이고, 그것은 나에게 전혀 호소하지 않습니다. 템플릿 태그는 내가 생각하는 Mako를 사용하는 많은 프로젝트에 매우 유용 할 것입니다.
답장을 보내 주셔서 감사합니다. 진자와 마코는 다소 비슷합니다. 내가 언급 한 body 인자는 Mako 템플릿 내의 함수 호출입니다. Mako의 말은 '파생 된 템플릿 본문 렌더링'을 의미합니다. 파이썬 함수 호출을 사용하여 텍스트 블록 (HTML)을 제공하고 템플릿을 기본으로 사용할 수 있는지 알아 보려면 Mako를 좀 더 살펴볼 필요가 있다고 생각합니다. 나는 이것을 잠시 동안 옆에두고있다. 그러나 그것이 작동하게되면 나는 대답을 게시 할 것이다. 입력 건배. –
@JoshSmeaton, 해명 해줘서 고마워. 나는 당신이 찾고있는 함수가 ['mako.template.Template']라고 생각한다. (http://www.makotemplates.org/docs/usage.html # basic-usage). 이것은 템플릿을 인자로 받아서'Template' 객체를 반환합니다. 이 객체는 주어진 context 인수로 템플릿을 렌더링하는'render()'메소드를 가지고있다. 나의 유일한 관심사는 템플릿이 렌더링 될 때'body()'함수가 기본적으로 실행되는지 여부입니다. 실습 예제를 얻었다면 답안에 코드를 게시 할 것입니다. –
EDIT : Mako 템플릿 상속 구조에 대한 지식이 없으므로 편집하기에 너무 늦게 깨달았습니다. 따라서 $ {next.body}의 동작을 실제로 복제 할 수는 없습니다. –