2012-04-18 6 views
0

네비게이션, 사이드 바, 로그인 패널 등과 같이 페이지의 각 부분마다 별도의 템플릿을 만들고 싶습니다. 장고는 합성이 아닌 상속을 사용하는 것 같습니다. 템플릿을 부분으로 분리하고 각 템플릿에 템플릿 특정 모델을 전달하는 지원이 있는지 궁금합니다. 내가 좋아하는 뭔가 생각 해요 = { = ... 'sidebar_data' 'navbar_data'= ... }django는 템플릿을 부분으로 분리 할 수 ​​있습니까?

{{template.render

값 ('네비게이션 바'navbar_data)} } {{template.render ('sidebar', sidebar_data)}}

답변

2

이렇게하는 좋은 방법이 많이 있습니다.

내장 템플릿 세트 include을 사용할 수 있습니다. 이 템플리트 태그를 사용하면 템플리트의 특정 부분을 사용하고 재사용 할 수 있습니다. 일반적으로 단일 모델을 나타내며 사이트 전체에서 사용되는 미니 템플릿에 가장 유용합니다. 당신은 당신이 포함 된 템플릿에 사용 된 문맥을 정교하게 할 수 있도록 with templatetag와 결합하는 경우에 특히 유용 할 수 있습니다

또는 단순히 block를 사용하면 당신이 마지막으로 당신을

찾고있는 느낌을 줄 수 있습니다 (https://docs.djangoproject.com/ko/1.4/howto/custom-template-tags/#inclusion-tags)를 사용하여 더욱 강력한 제어 수준을 제공 할 수 있습니다. 이렇게하면 완전히 사용자 정의 된 컨텍스트로 하위 템플릿을 렌더링 할 수 있습니다.

0

templatetags의 용도입니다. 그런 다음 템플릿에 공식 문서는이에 대한 많은 정보를 가지고이

{% load mytags %} 

{% navbar %} {% sidebar %} 

을, MyApp를/templatetags/mytags.py라는 파일에 태그를 정의합니다.

관련 문제