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
相关产品推荐
相关产品推荐

