[html] {% include %} 태그 Django의 하위 템플릿에 변수 할당

이 코드가 있습니다 (예상 결과를 얻지 못함).

#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>

하위 템플릿 :

#subject_file_upload.html
    <form action="." method="post" enctype="multipart/form-data">{% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="submit">
    </form>

그리고 내 견해

#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이 제안한 것처럼 매우 간단합니다.

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

이에 대한 문서include 는 이것을 언급합니다. 또한 only다른 변수를 상속하지 않고 주어진 변수로만 템플릿을 렌더링하는 데 사용할 수 있다고 언급 합니다.

감사합니다 @Besnik


답변