문제

누군가가 다음 문제에 대한 최상의 접근 방식을 파악하는 데 도움이 될지 궁금합니다. Django 템플릿을 사용하여 웹 UI 구성 요소를 구성하는 웹 응용 프로그램을 작성하고 있습니다. 헤더 / 바닥 글, HTML 헤드, Masthead 등과 같은 여러 공통 HTML 요소가 있습니다. 한 번 코딩하고 핵심 애플리케이션 기능을 나타내는 다른 템플릿과 "포함 / 결합"하려고합니다.

Django 템플릿을 사용하여 가능합니까? 그렇다면 어떻게 그것을 달성 할 수 있습니까?

도움이 되었습니까?

해결책

Django를 사용할 수 있습니다 extends 꼬리표. 헤더와 바닥 글이 있다고 가정 해 봅시다. foo.django : 템플릿을 만들 수 있습니다.

<h1>My HTML Header</h1>
<!-- an so on -->

{% block content %}
{% endblock %}

<!-- html footer -->

그런 다음 다른 템플릿을 만들 수 있습니다 : bar.django :

{% extends "foo.django" %}

{% block content %}
This overrides the content block in foo.django.
{% endblock %}

... 그런 다음 렌더링합니다.

<h1>My HTML Header</h1>
<!-- an so on -->

This overrides the content block in foo.django.

<!-- html footer -->

Django 템플릿에는 좋은 지침이 있습니다 http://www.djangobook.com/en/1.0/chapter04/.

다른 팁

그만큼 {% extends %} 그리고 {% include %} 메소드는 컨텍스트에서 추가 정보가 필요하지 않은 페이지 요소에 적합합니다.

데이터베이스에서 더 많은 내용을 컨텍스트에 삽입해야하자마자 템플릿 태그가 편리합니다. 예를 들어, contrib.comments Django에 포함 된 a {% get_comment_list %} 주어진 모델 인스턴스에 첨부 된 주석을 검색하기위한 템플릿 태그. 사용 방법은 다음과 같습니다.

<div>
{% load comments %}
{% get_comment_list for my_instance as comment_list %}
{% for comment in comment_list %}
  <p><a href="{{ comment.url }}">{{ comment.name }}</a> wrote:</p>
  {{ comment.comment }}
{% endfor %}
</div>

이것을 별도의 템플릿으로 저장할 수 있습니다 {% include %} 다른 템플릿에서.

자신의 콘텐츠를 위해 자신의 사용자 정의 템플릿 태그를 작성할 수 있습니다. 따르다 문서. 가능할 때마다 간단한 태그 기구. 편리한 기성품 템플릿 태그를 찾을 수 있습니다 djangosnippets.org 그리고 Blogosphere.

시도해보십시오 {% include %} 꼬리표.

http://docs.djangoproject.com/en/dev/ref/templates/builtins/#include

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