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

Jinja模板如何访问列表元素?修复Django模板len()函数解析报错

错误原因

Django 模板语法不支持直接调用 Python 原生函数,你代码中使用的len(totalDBElement)不符合模板语法规则,因此会抛出解析错误。此外你原模板的写法会把分类名称和对应数值拆分为两个独立的<h2>标签,也不符合你预期的展示效果。

修复方案

推荐优先在视图层做数据预处理,符合Django「模板尽量减少逻辑处理」的最佳实践,修改成本也最低:

  1. 修改views.py代码,将两个列表打包为一一对应的元组列表后再传给模板:
def index(request):
    totalDBElement = [169, 2166, 5413, 635, 635]
    elementOrder = ['Rules', 'Questions', 'ParentChild', 'ChildList']
    # 打包两个列表,自动按较短的列表长度匹配,刚好对应你需要的4组展示数据
    page_data = zip(elementOrder, totalDBElement)
    return render(request,'diagnosis/index.html', {'page_data': page_data})
  1. 修改模板代码,直接遍历打包后的结构化数据即可:
{% for item_name, item_count in page_data %}
<h2>{{ item_name }}: {{ item_count }}</h2>
{% endfor %}

如果你不想修改视图代码,也可以通过Django模板内置的过滤器实现遍历,不过代码可读性会稍差:

{% for item in elementOrder %}
<h2>{{ item }}: {{ totalDBElement|slice:forloop.counter0|last }}</h2>
{% endfor %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:07