চাইল্ড টেম্পলেটে ভেরিয়েবলগুলি নির্ধারণ করুন include% অন্তর্ভুক্ত%} ট্যাগ জ্যাঙ্গো


91

আমার এই কোডটি রয়েছে (যা আমাকে প্রত্যাশিত ফলাফল দেয় না)

#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?
বেসনিক

উত্তর:


220

@ বেসনিকের পরামর্শ মতো, এটি বেশ সহজ:

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

ডকুমেন্টেশনinclude এই উল্লেখ করা হয়। এটি আরও উল্লেখ করেছে যে আপনি অন্য onlyপ্রদত্ত ভেরিয়েবলের উত্তরাধিকার ছাড়াই কেবলমাত্র প্রদত্ত ভেরিয়েবলগুলির সাথে টেম্পলেটটি রেন্ডার করতে পারবেন ।

ধন্যবাদ @ বেসনিক


4
সম্পূর্ণতার জন্য নোট করুন যে আপনি যদি কেবলমাত্র প্রদত্ত ভেরিয়েবলগুলির সাথে টেমপ্লেটটি রেন্ডার করতে চান (এবং প্যারেন্ট প্রসঙ্গটি উত্তরাধিকারী না হন) আপনি "কেবল" বিকল্পটি যুক্ত করতে পারেন: form% ফর্ম = এর সাথে "পথ / টু / টেম্পলেট.html" অন্তর্ভুক্ত করতে পারেন ফর্মটি কেবল form
গনজ

8
সম্পূর্ণতার জন্য, এখানে "সাথে" লিঙ্কটি রয়েছে: ডকস.ডজ্যাঙ্গোপ্রজেক্ট /en/1.8/ref/templates/builtins/# অন্তর্ভুক্ত
টিমো

@ ভোর যদি আমার ভিউ ফিরে আসে context["these_items"]এবং context["other_items"], আমি কী এর {% for item in these_items %}সাথে বিকল্প ব্যবহার করতে পারি {% for item in other_items %}?
জিয়ানিসআইর্ডানৌ

কোনও কারণে, যদি ভেরিয়েবলটির নামে _ থাকে তবে এটি কার্যকর হয় না। উদাহরণ: _% আমার_ফর্ম = ফর্ম ফু = বার% subject সহ "সাবজেক্ট_ফाइल_আপলোড.চ.টি.এম.এল" অন্তর্ভুক্ত করুন} এর কোন ব্যাখ্যা?
অ্যালান টাইগেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.