Django模板的上下文字典如下所示:
{'key1':'1',
'key2':'2',
'key3':'3',
'key4':{'key5':{'key6':'6', 'key7':'7', 'key8':'8'}}}
我想反复阅读字典并打印如下内容:
一些标签=6
某些标签=7
某些标记=8
如何在我的Django模板中实现这一点?
这有什么问题?
<ul>
{% for key, value in key4.key5.items %}
<li>{{ key }} : {{ value }}</li>
{% endfor %}
</ul>
注意:您并没有要求对上下文中的所有键进行循环,只是要求访问key4['key5']
内容。如果这不是你想要的,请把你的问题写下来,让它更清楚;-(
我猜你想在django模板中使用for循环来实现这一点,你必须首先将字典传递给视图文件中的模板,这样就可以确保在字典周围添加方括号:
data = [{'key1':'1',
'key2':'2',
'key3':'3',
'key4':{'key5':{'key6':'6', 'key7':'7', 'key8':'8'}}
}]
return render(request,'name of template',{'data':data})
然后在html模板中:
{% for i in data%}
<p>{{i.key1}}</p>
<p>{{i.key2}}</p>
<p>{{i.key3}}</p>
<p>{{i.key4.key5.key6}}</p>
{% endfor %}
现在,当你执行for循环时,你可以访问key4中的所有iteams,就像我在上面放{{i.key4.key5.key6}}
时一样以下是django模板中for循环的文档https://docs.djangoproject.com/en/3.0/ref/templates/builtins/
我想这就是你想做的。
这对我很有效:
{% for key, value in context.items %}
{% ifequal key "key4" %}
{% for k, v in value.items %}
some label = {{ v.key6 }}
some label = {{ v.key7 }}
some label = {{ v.key8 }}
{% endfor %}
{% endif %}
{% endfor %}
如果你只想打印你提到的内容,那么这是可能的,但如果我们不知道字典的确切结构,那么这在django视图中是可能的。
您不能在django模板中逐个打印也是字典的值,但你可以在django视图中这样做。
检查这篇文章点击这里并在视图中做一些更改。