2013-05-27 3 views
0

나는 오픈 소스 라이브러리에 포함되어 있으며 앞으로 업데이트를받을 것으로 예상되는 template_a.html이 있습니다.비슷하지만 다른 두 가지 작업에 대해 하나의 템플릿을 사용합니까?

작은 부분 만 template_a과 다른 템플릿이 필요합니다.
복사하여 붙여 넣기하여 template_b으로 만들거나 {% if {{ request.get_full_path }} == 'some-string' %}을 사용하여 내가 템플릿을 사용하고있는 것을 구별 할 수 있습니다.

더 나은 방법은 무엇입니까?

  1. 각 작업마다 별도의 템플릿을 만들어야합니다.
  2. 사용 get_full_path가 작업을 구별 할 수 있습니다. (주로 내가 나중에 경로를 변경할 수 있기 때문에, get_full_path을 사용하는 아이디어를 좋아하지 않아, 더 나은 방법은 가?)
+0

어떻게 다릅니 까? 데이터 변경이나 구조 만 있습니까? 보기가 다른가요? – Rohan

+0

1. 서로 다른 스타일 (다른 CSS)을가집니다. 2. 다른 편집기 (입력과 같은 텍스트 영역 용)를 사용합니다. 3. hiddenInput 필드의 값이 다릅니다. – eugene

+0

일반적으로 물건을 분리 된 상태로 유지하는 것이 좋습니다. 특히 두 가지 템플릿을 만드는 데 도움이 될 차이점에 대해 방금 말씀 드린 내용을 참조하십시오. – LarsVegas

답변

0
  • 당신은 만들 수 있습니다 두 템플리트의 공통 부분에 대한 하나의 기본 템플리트
  • 변경중인 부분에 대한 블록을 정의하십시오.
  • 기본 템플리트에서 두 템플리트를 확장하고 변경하려는 블록 만 정의하십시오.
  • 보기는 응답을 렌더링하기 위해 적절한 템플릿을 사용할 수 있습니다.

참조 Template inheritance

샘플 :

Template_base.html

{% block header %} 
    {# something in header #} 
{% endblock %} 

{% block common %} 
    {# something in common #} 
{% endblock %} 

{% block content %} 
    {# filled by derived templates #} 
{% endblock %} 

Template_a.html

{% extends "template_base.html" %} 
{% block content %} 
    {# write your html for a.html #} 
{% endblock %} 

Template_b.html

,
{% extends "template_base.html" %} 
{% block content %} 
    {# write your html for b.html #} 
{% endblock %} 
+0

감사의 뜻이 맞는 로한. 비록 약간의 질문을 조정할 필요가있다. 이 opensource github (template_a.html이 있음)에서 업데이트를 얻을 것으로 기대하고 있습니다. – eugene

관련 문제