LVX*_*LVX 1 python django dictionary key
我有点卡在Django问题上,我无法在for循环中访问dict的值.它在for循环之外工作,而不是在内部.
我错过了明显的吗?
蟒蛇:
err{}
err['else'] = {'class': 'Low', 'txt': 'zero'}
err['if'] = {'class': 'High', 'txt': 'one'}
data = { 'errors': err }
return render(request, 'index/error.html', data)
Run Code Online (Sandbox Code Playgroud)
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 %}
Run Code Online (Sandbox Code Playgroud)
上面3行用于代码调试,工作得很好.for循环不会产生任何代码.
最好的问候,LVX
你可能需要访问.items()
的dict
,你叫errors
.只需迭代a就会dict
给出键,但不是值.
您可以将代码更改为:
{% for k, v in errors.items %}
<div class="{{ v.class }}"><p>{{ v.txt }}</p></div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
当然,如果您不需要键(if
和else
),那么您也可以使用.values()
而不是items()
仅仅获取内部的值dict
.