我尝试在Django tempalte中实现一个forloop,每个周期迭代两个项目,这样

{% for c in cList%}
<ul class="ListTable">
    <li>
         {{ c1.name }}
    </li>
    <li>
         {{ c2.name }}
    </li>

</ul>
{% endfor %}


我知道我的代码不是执行此操作的正确方法,但无论如何我都找不到。
我真的很感谢任何建议

谢谢

最佳答案

如果您可以控制cList的列表结构,为什么不将其设为2个元素的元组列表或2个元素的列表列表,例如

#in the view
cList = [(ob1, ob2),
         (ob3, ob4)]


和模板中的

{% for c1, c2 in cList %}

 <ul class="ListTable">
   <li>
     {{ c1.name }}
   </li>
   <li>
      {{ c2.name }}
   </li>
</ul>
 {% endfor %}


您也可以使用zip函数来促进cList的创建,或定义一个
从对象列表创建这种结构的函数,例如

def pack(_list):
    new_list = zip(_list[::2], _list[1::2])
    if len(_list) % 2:
        new_list.append((_list[-1], None))
    return new_list

10-01 15:02