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

Django模板中遍历多维字典时无法访问下层字典属性的问题咨询

解决Django模板中遍历字典无法获取下层数据的问题

我明白你遇到的问题了——在Django模板里直接遍历字典时,默认只会迭代它的键,而不是键值对组合,这就是你只能拿到物品ID,却没法通过item.1.item_name访问属性的原因。下面给你两种简单的解决方法:

方法1:遍历字典的键值对(推荐)

在Django模板中,你可以通过字典的.items方法获取包含(键, 值)元组的可迭代对象,循环时同时接收键和对应的值字典:

{% for item_id, item_data in players.1.items.items %}
    {{ item_id }} <!-- 这里输出物品ID -->
    {{ item_data.item_name }} <!-- 正确获取物品名称 -->
    {{ item_data.item_value }} <!-- 正确获取物品价值 -->
{% endfor %}

这样循环里的item_data就是你在视图中定义的物品属性字典,直接通过.item_name就能拿到对应值了。

方法2:只遍历字典的值

如果你不需要用到物品ID,只想直接获取每个物品的属性字典,可以用.values方法:

{% for item_data in players.1.items.values %}
    {{ item_data.item_name }}
    {{ item_data.item_value }}
{% endfor %}

为什么硬编码访问能正常工作?

你直接写{{players.1.items.1.item_name}}能拿到值,是因为这是直接通过键路径访问字典值的标准方式——你明确指定了要取players[1]['items'][1]['item_name'],而循环时没拿到值对象,才导致访问失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 20:03:09