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

为什么在Django模板中通过.keys遍历字典无法获取对应值?

无法正常运行的核心原因

Django模板的点(.)语法有固定的解析规则,不会将点后方的标识符识别为上下文里的动态变量:
你在循环中写的{{ city_data.key }},Django会固定查找city_data字典里键为字符串"key"的条目,不会把key解析成你for循环定义的迭代变量。你的字典里没有名为key的键,自然无法输出预期的结果。

补充:Django模板点语法的查找优先级是固定的,依次为「字典键查找 > 对象属性查找 > 无参方法调用 > 序列索引查找」,整个过程不会将点后的内容解析为已定义的变量。

推荐的正确写法

直接遍历字典的items同时获取键和值,不需要额外做动态键取值,性能和可读性都更好:

{% for key, value in city_data.items %}
  <li>{{ value }}</li>
{% endfor %}

如果你的业务场景必须单独遍历键再取值,可以自定义模板过滤器实现动态键查询,Django原生模板没有提供对应的内置语法支持。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:06:04