{% शामिल%} टैग Django में बच्चे टेम्पलेट के लिए चर असाइन करें


89

मेरे पास यह कोड है (जो मुझे अपेक्षित परिणाम नहीं देता है)

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

कृपया इसे मध्य टेम्पलेट के साथ काम करने में मेरी मदद करें। मैं ऐसा करना चाहता हूं, क्योंकि मैं एक ही कोड को एक से अधिक बार टाइप करना नहीं चाहता।


13
आप के includeसाथ प्रयोग करने की कोशिश की है with?
बेसिकन

जवाबों:


215

@Besnik ने सुझाव दिया, यह बहुत आसान है:

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

इस के लिए प्रलेखनinclude । इसमें यह भी उल्लेख है कि आप onlyकिसी अन्य चर को प्राप्त किए बिना, केवल दिए गए चर के साथ टेम्पलेट को रेंडर करने के लिए उपयोग कर सकते हैं ।

शुक्रिया @Besnik


4
पूर्णता के लिए ध्यान दें कि यदि आप दिए गए वेरिएबल्स के साथ केवल टेम्प्लेट को प्रस्तुत करना चाहते हैं (और मूल संदर्भ को इनहेरिट नहीं करते हैं) तो आप "=" विकल्प में जोड़ सकते हैं: फॉर्म के साथ {path / to / template.html " फॉर्म केवल}}
gonz

8
पूर्णता के लिए फिर से, यहाँ "" के साथ "लिंक है: docs.djangoproject.com/en/1.8/ref/templates/builtins/#include
Timo

@ यदि मेरा दृश्य वापस आ जाता है context["these_items"]और context["other_items"]क्या मैं इसके विकल्प के {% for item in these_items %}साथ शामिल कर सकता हूं {% for item in other_items %}?
GiannisIordanou

किसी कारण से, यदि चर के नाम में _ है, तो यह काम नहीं करता है। उदाहरण: {% में my_form = फ़ॉर्म foo = bar%} के साथ "subject_file_upload.html" शामिल है। इसके लिए कोई स्पष्टीकरण?
एलन टाइगेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.