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

Django模板中如何在单个for循环内同时遍历两个字典元素?

解决Django模板中关联两个列表生成链接的问题

方法一:后端打包数据(推荐)

直接在视图函数里把name和id两个列表打包成元组列表,让模板循环一次就能拿到对应的数据:

修改后端代码:

def page(request): 
    names = ['nameOne', 'nameTwo', 'nameThree']
    ids = ['1', '2', '3']
    # 打包成(名称, ID)的元组列表
    data = {'items': zip(names, ids)}
    return render(request, "mainpageapp/page.html", data)

模板中循环使用:

{% for name, item_id in items %}
  <a href="/{{ item_id }}">{{ name }}</a><br>
{% endfor %}

注:这里用item_id作为变量名,是为了避免和Django模板内置的id变量冲突,更安全。

方法二:模板中用索引关联

如果不想修改后端代码,可以利用Django模板循环自带的forloop.counter0变量(从0开始的索引),匹配两个列表的对应元素:

模板代码:

{% for name in name %}
  {% with index=forloop.counter0 %}
    <a href="/{{ id.index }}">{{ name }}</a><br>
  {% endwith %}
{% endfor %}

这种方法要求两个列表长度严格一致,否则会出现索引越界或数据不匹配的问题,因此优先推荐第一种后端打包的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:57:40