You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django模板中分两次遍历列表?

Django模板分两次遍历列表的解决方案

Django模板支持使用slice过滤器对列表进行切片,刚好能解决你分两次遍历的需求,直接用以下写法即可,不需要复杂的while循环:

遍历第0-3项(前4个元素)

<div class="card-group">
  {% for item in arr|slice:"0:4" %}
    <div class="card">
      <img src="{{ item.img_url }}" alt="{{ item.title }}">
      <div class="card-body">
        <h5 class="card-title">{{ item.title }}</h5>
        <a href="{{ item.link }}" class="btn btn-primary">查看</a>
      </div>
    </div>
  {% endfor %}
</div>

遍历第4-7项(接下来的4个元素)

<div class="card-group">
  {% for item in arr|slice:"4:8" %}
    <div class="card">
      <img src="{{ item.img_url }}" alt="{{ item.title }}">
      <div class="card-body">
        <h5 class="card-title">{{ item.title }}</h5>
        <a href="{{ item.link }}" class="btn btn-primary">查看</a>
      </div>
    </div>
  {% endfor %}
</div>

关键说明

  • slice过滤器的语法是slice:"起始索引:结束索引",遵循Python切片的左闭右开规则,所以0:4会取索引0、1、2、3的元素,4:8取4、5、6、7的元素。
  • 如果你的列表长度不足8,切片会自动处理剩余元素,不会抛出索引越界错误。
  • 之前报错大概率是直接用了Python的切片写法(比如arr[0:4]),Django模板里必须通过slice过滤器实现切片操作。

内容的提问来源于stack exchange,提问作者metalboxhead

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:18:10