iv444
iv444

Reputation: 985

How can I have multiple forloops on my Django template?

I am a Django / Python newbie & trying to create multiple forloop on my template. The result that I want is:

<ul>
  <li data-target="food-fruit1-0">Banana</li>
  <li data-target="food-fruit1-1">Apple</li>
  <li data-target="food-fruit1-2">Orange</li>
  <li data-target="food-fruit1-3">Mango</li>
</ul>
<ul>
  <li data-target="food-fruit2-0">Banana</li>
  <li data-target="food-fruit2-1">Apple</li>
  <li data-target="food-fruit2-2">Orange</li>
  <li data-target="food-fruit2-3">Mango</li>
</ul>

How do I achieve it with Django Template forloop? I have tried

{% for fruit in fruit_list %}
    <ul class='h-clearlist'>
      {% for item in object.fruits %}
        <li class='fruit__list' data-target="food-fruit{{ forloop.counter1 }}-{{ forloop.counter0 }}">
          <h3 class='fruit__title'>{{item.name}}</h3>
          <p class='fruit__description'>{{item.description}}</p>
          <span class="fruit__cost"> <strong data-currency>{{item.price}}</strong></span>
        </li>
      {% endfor %}
    </ul>
{% endfor %}

But of course it's incorrect:( I tried using `{% with outer=1 inner=0 %}` but also not working. Can someone please help me out?

Upvotes: 0

Views: 480

Answers (1)

Chris
Chris

Reputation: 2212

What about using a nested loop? For instance

{% for x in some_list %}
<ul>
{% for item in object.fruits %}
    <li data-target="food-fruit{{ forloop.parentloop.counter}}-{{ forloop.counter }}">
         {{ item.name }}
    </li>
{% endfor %}
</ul>
{% endfor %}

The docs are here

Upvotes: 2

Related Questions