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

如何在Django模板中渲染JSONField中的任意键值对?

Django模板渲染JSONField未知键的遍历解决方案

问题场景

我给前端加调试信息,把数据存在JSONField里,后端存读都没问题,但在Django模板渲染时踩了好几个坑:

  • 用{{ log.log_data.key }}只能显示键名,拿不到对应的值
  • 用{{ log.log_data | pprint }}输出的是被HTML扁平化的纯文本JSON,完全不利于调试查看
  • 试了{{ log.log_data[key] }}直接报错:Could not parse the remainder

翻了不少资料,都没针对JSONField未知键的场景,最后才搞清楚问题所在。

解决办法

Django模板不是标准Jinja2,遍历JSONField的键值对时,不能给items加括号:

正确遍历写法:

{% for key, value in log.log_data.items %}
    <p>{{ key }}: {{ value }}</p>
{% endfor %}

之前踩坑的错误写法(带括号会触发模板语法错误):

{% for key, value in log.log_data.items() %}
    ...
{% endfor %}

用正确的写法就能正常遍历JSONField里的所有未知键值对,调试信息能正常展示在页面上。

内容的提问来源于stack exchange,提问作者Shadur-don't-feed-the-AI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:15:35