猿问

Django dict键,for循环中的值不起作用

我在 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


陪伴而非守候
浏览 188回答 3
3回答

开心每一天1111

你可能需要访问.items()的dict,你叫errors。只是迭代 adict给你键,而不是值。您可以将代码更改为:{% for k, v in errors.items %}&nbsp; <div class="{{ v.class }}"><p>{{ v.txt }}</p></div>{% endfor %}当然,如果您不需要键(if和else),那么您也可以使用.values()而不是items()仅获取dict.

慕婉清6462132

你应该像这样尝试 - error['class']第二种方式 - error[key]['class']使用 forloop - for k,v in errors: print(v['class'])
随时随地看视频慕课网APP

相关分类

Python
我要回答