জ্যাঙ্গো - একটি টেমপ্লেটের লুপের জন্য পুনরাবৃত্তি সংখ্যা


250

আমার জ্যাঙ্গো টেমপ্লেটে প্রদর্শনের দিনগুলিতে লুপের জন্য আমার নীচে রয়েছে। আমি অবাক হই, কোনও লুপে কোনও সংখ্যা পুনরুক্ত করা সম্ভব (নীচের ক্ষেত্রে আমি)। অথবা আমি কি এটি ডেটাবেজে সংরক্ষণ করতে এবং তারপরে এটি দিনগুলির আকারে জিজ্ঞাসা করতে হবে? দিন_সংখ্যায়?

{% for days in days_list %}
    <h2># Day {{ i }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}

উত্তর:


591

জ্যাঙ্গো এটি সরবরাহ করে। আপনি যে কোনটি ব্যবহার করতে পারেন:

  • {{ forloop.counter }}সূচক 1 থেকে শুরু হয় ।
  • {{ forloop.counter0 }}সূচক 0 থেকে শুরু হয় ।

টেমপ্লেটে, আপনি এটি করতে পারেন:

{% for item in item_list %}
    {{ forloop.counter }} # starting index 1
    {{ forloop.counter0 }} # starting index 0

    # do your stuff
{% endfor %}

আরও তথ্য এখানে: জন্য | অন্তর্নির্মিত টেম্পলেট ট্যাগ এবং ফিল্টার | জ্যাঙ্গো ডকুমেন্টেশন


1
তবে এটি দৈর্ঘ্য -1 দেয়।
ভিকাস কোহলি

2
লুপগুলির জন্য নেস্টেড সম্পর্কে কী? যদি আমরা ভিতরের বা বাইরের লুপটি গণনা করতে চাই তবে আমরা জাঙ্গো কীভাবে বলতে পারি?
টিম ভোকার 14

4
@ crey4fun, forloop.parentloopআরও তথ্যের জন্য ডকুমেন্টগুলি দেখুন check
রোহান

89

এছাড়াও এটি ব্যবহার করতে পারেন:

{% if forloop.first %}

অথবা

{% if forloop.last %}

10
প্রশ্নের উত্তর নয়, তবে এখনও বহু লোকের উত্তর যা এই প্রশ্নের সন্ধান করবে। ভাল জিনিস!
কনটুর

1

[জ্যাঙ্গো এইচটিএমএল টেমপ্লেট এখন পর্যন্ত সূচকে সমর্থন করে না] তবে আপনি লক্ষ্যটি অর্জন করতে পারেন:

আপনি যদি ভিউপিপিতে অভিধানের ভিতরে অভিধান ব্যবহার করেন তবে সূচক হিসাবে কী ব্যবহার করে পুনরাবৃত্তি সম্ভব। উদাহরণ:

{% for key, value in DictionartResult.items %} <!-- dictionartResult is a dictionary having key value pair-->
<tr align="center">
    <td  bgcolor="Blue"><a href={{value.ProjectName}}><b>{{value.ProjectName}}</b></a></td>
    <td> {{ value.atIndex0 }} </td>         <!-- atIndex0 is a key which will have its value , you can treat this key as index to resolve-->
    <td> {{ value.atIndex4 }} </td>
    <td> {{ value.atIndex2 }} </td>
</tr>
{% endfor %}

অন্যথায় যদি আপনি অভিধানের ভিতরে তালিকা ব্যবহার করেন তবে কেবল প্রথম এবং শেষ পুনরাবৃত্তিকেই নিয়ন্ত্রণ করা যায় না, তবে সমস্ত সূচক নিয়ন্ত্রণ করা যেতে পারে। উদাহরণ:

{% for key, value in DictionaryResult.items %}
    <tr align="center">
    {% for project_data in value %}
        {% if  forloop.counter <= 13 %}  <!-- Here you can control the iteration-->
            {% if forloop.first %}
                <td bgcolor="Blue"><a href={{project_data}}><b> {{ project_data }} </b></a></td> <!-- it will always refer to project_data[0]-->
            {% else %}
                <td> {{ project_data }} </td> <!-- it will refer to all items in project_data[] except at index [0]-->
            {% endif %}
            {% endif %}
    {% endfor %}
    </tr>
{% endfor %}

যদি শেষ ;)

// আশা অভিধান, অভিধান, তালিকা, এইচটিএমএল টেমপ্লেট, লুপের জন্য, অভ্যন্তরীণ লুপ, অন্যথায় যদি সমাধানটি কভার করে। আরও পদ্ধতিগুলির জন্য জ্যাঙ্গো এইচটিএমএল ডকুমেন্টেশন: https://docs.djangoproject.com/en/2.2/ref/templates/builtins/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.