我遇到了一个 Django 问题,我无法在 for 循环中访问字典的值。它在 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
请您参考如下方法:
您可能需要访问您称为errors 的dict 的.items()。只需遍历 dict 即可为您提供键,但不会提供值。
您可以将代码更改为:
{% for k, v in errors.items %}
<div class="{{ v.class }}"><p>{{ v.txt }}</p></div>
{% endfor %}
当然,如果您不需要键(if 和 else),那么您也可以使用 .values() items() 只是获取 dict 中的值。
