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

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

Ral*_*alf 7

你可能需要访问.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)

当然,如果您不需要键(ifelse),那么您也可以使用.values()而不是items()仅仅获取内部的值dict.