2012-02-25 5 views
3

다른 django 템플릿 내부에서 사용할 수있는 django 템플릿을 만들 수 있습니까? 나는 extends 명령을 알고 있지만 그것이 내가 찾고있는 것이라고는 생각하지 않습니다. 어쩌면이 상황에서 어떻게 작동시키는 지 모르겠습니다. 예를 들어 보겠습니다.Django 템플릿을 스 니펫으로 사용

대부분의 웹 응용 프로그램에서 사용자의 로그인 상태를 표시하는 것이 일반적이며, 이에 대한 논리를 (해당 "Welcome Mr. Foo"및 "가입해야합니까?") 입력하는 방법을 찾고 있습니다. 이런 작은 템플릿 :

loginstatus.html 이제

{% if LoggedIn %} 
    Message message link link 
{% else %} 
    Other message different link 
{% endif %} 

, 내가 렌더링 엔진을 호출하고 변수에이 출력을 저장해야 그림은, 다음 기본 템플릿 때 그 전달 렌더링하면 기본 템플릿은 다음과 같습니다.

index.html을

<html> 
    <head> 
    </head> 
    <body> 
    <div id="Header">{{ LoginStatus }}</div> 
    </body> 
</html> 

는 지금, 나는 단지 나에게 5 줄을 저장,이 꽤 절름발이 예를 알고,하지만 난과 관련하여 뉴스 피드를 표시, 사용자의 역할에 따라 탐색 모음을 만드는이 일을 구상 사용자 위치 또는 선택한 관심사 등.

즉, 내가 그것을 어떻게 상상할 수있게 만들지 않았기 때문에 (즉, 장고 템플릿을 미리 랜더링 할 수 없었기 때문에) 다른 장고 템플릿으로 렌더링 된 HTML?

나는 그다지 중요하지 않다고 생각하지만, Google App Engine을 사용해도 변경됩니다.

답변

6

특정 예를 들면 include 태그를 사용하여 스 니펫을 포함 할 수 있습니다.

탐색 바 및 뉴스 피드의 경우 custom template tags - 특히 포함 태그가 더 적절합니다.

+0

Django의 .96 버전과 1.2 버전 모두에서 완벽하게 작동했습니다 (GAE와 함께 제공됩니다). 나는 당신에게 그러한 우아한 솔루션을 가리키며, 내가 이러한 것들을 과소 평가하기 시작하기 전에이 매뉴얼을 조금 더 읽어야한다는 것을 상기시켜 준다. 아직 사용자 정의 템플릿 태그를 체크 아웃하지 않았지만 그렇게 할 것입니다. – Timbermar

관련 문제