2012-07-24 3 views
50

내가 (나에게 예상되는 결과를 제공하지 않는)이 코드를지정 변수 태그 장고

#subject_content.html 
{% block main-menu %} 
    {% include "subject_base.html" %} 
{% endblock %} 


#subject_base.html 
.... 
.... 
    <div id="homework" class="tab-section"> 
     <h2>Homework</h2> 
      {% include "subject_file_upload.html" %} 
    </div> 

아이 템플릿 {%는 %를 포함한다}

#views.py 
@login_required 
def subject(request,username, subject): 
    if request.method == "POST": 
     form = CarsForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect("/") 
    form = CarsForm() 
    return render_to_response('subject_content.html', {'form':form}, context_instance=RequestContext(request)) 

위 코드는 양식이 데이터베이스를 업데이트하지 않지만 원하는 방식으로 HTML을 생성합니다. 나는 중간 템플릿을 생략하고 업로드 형태로 직접 이동하는 경우

하지만,

, 그것은 잘 작동 : 나를 기쁘게

#subject_content.html 
{% block main-menu %} 
    {% include "subject_file_upload.html" %} 
{% endblock %} 

도움말은 중간 템플릿으로 작동하도록. 동일한 코드를 두 번 이상 입력하지 않아도되기 때문에이 작업을 수행하려고합니다. 마찬가지로 @Besnik 제안

+12

'with '와 함께'include'를 사용해 보았습니까? – Besnik

+0

@ 베스 닉 감사합니다 !!!! 그것은 작동합니다! – Vor

답변

127

, 그것은 아주 간단 :

{% include "subject_file_upload.html" with form=form foo=bar %} 

documentation for include이를 언급하고있다. 또한 only을 사용하여 다른 변수를 상속하지 않고 지정된 변수로만 템플릿을 렌더링 할 수 있다고 언급합니다.

고마워요 @Besnik

+3

완전성을 위해 템플릿을 주어진 변수로만 렌더링하고자 할 때 (그리고 부모 컨텍스트를 상속받지 않는 경우) "유일한"옵션을 추가 할 수 있습니다 : {% include "path/to/template.html"with form = 양식 전용}} – gonz

+8

다시 한번 말씀 드리면, "with"에 대한 링크가 있습니다 : https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#include – Timo

+0

기록 참고 : https : // 코드 .djangoproject.com/ticket/7817 – Paolo