Django中JSONField存储的字典数据HTML模板列表渲染问题求助
解决方案
你的问题在于当前模板循环的是整个json_data字典对象,所以遍历出的是字典的键(比如degree、designition),而非skills或university对应的列表值。以下是正确的渲染方法:
1. 渲染Skills列表
在HTML模板中直接通过键名获取skills列表,再循环生成列表项:
<h3>Skills</h3> <ul> {% for skill in profile.json_data.skills|default:[] %} <li>{{ skill.strip }}</li> <!-- 可选:去除技能名称前的多余空格,比如C++前面的空格 --> {% empty %} <li>暂无技能信息</li> {% endfor %} </ul>
2. 渲染University列表
用同样的方式处理university数据:
<h3>就读院校</h3> <ul> {% for university in profile.json_data.university|default:[] %} <li>{{ university }}</li> {% empty %} <li>暂无院校信息</li> {% endfor %} </ul>
关键说明
profile.json_data.skills:直接通过键名访问JSONField中存储的列表数据|default:[]:避免当json_data为空或skills键不存在时抛出异常,默认返回空列表{% empty %}:当列表为空时显示友好提示内容
内容的提问来源于stack exchange,提问作者KipronoKirui
相关产品推荐
相关产品推荐

