我在 Django 问题上有点卡住了,我无法在 for 循环中访问 dict 的值。它在 for 循环之外工作,而不是在内部。我在这里错过了明显的东西吗?Python:err{}err['else'] = {'class': 'Low', 'txt': 'zero'}err['if'] = {'class': 'High', 'txt': 'one'}data = { 'errors': err }return render(request, 'index/error.html', data)HTML模板:<p>{{ errors }}</p><p>{{ errors.if }}</p><p>{{ errors.if.class }}</p>{% for error in errors %} <div class="{{ error.class }}"><p>{{ error.txt }}</p></div>{% endfor %}上面 3 行用于代码调试,工作正常。for 循环不产生任何代码。最好的问候,LVX
3 回答

开心每一天1111
TA贡献1836条经验 获得超13个赞
你可能需要访问.items()的dict,你叫errors。只是迭代 adict给你键,而不是值。
您可以将代码更改为:
{% for k, v in errors.items %}
<div class="{{ v.class }}"><p>{{ v.txt }}</p></div>
{% endfor %}
当然,如果您不需要键(if和else),那么您也可以使用.values()而不是items()仅获取dict.

慕婉清6462132
TA贡献1804条经验 获得超2个赞
你应该像这样尝试 - error['class']
第二种方式 - error[key]['class']
使用 forloop - for k,v in errors: print(v['class'])
添加回答
举报
0/150
提交
取消