首页 > 解决方案 > 如何在我的 Django 模板上有多个 forloop?

问题描述

我是 Django / Python 新手并试图forloop在我的模板上创建多个。我想要的结果是:

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

如何使用 Django 模板实现它forloop?我试过了

{% 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?

标签: djangodjango-modelsdjango-templatesdjango-views

解决方案


使用嵌套循环怎么样?例如

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

文档在这里


推荐阅读