我的Django模板的上下文字典如下:
{'key1':'1',
'key2':'2',
'key3':'3',
'key4':{'key5':{'key6':'6', 'key7':'7', 'key8':'8'}}}
我想遍历字典并打印如下内容:
一些标签 = 6
一些标签 = 7
一些标签 = 8
如何在Django模板中实现这一目标?
答案 0 :(得分:2)
这是怎么了?
<ul>
{% for key, value in key4.key5.items %}
<li>{{ key }} : {{ value }}</li>
{% endfor %}
</ul>
注意:您并不是要遍历上下文中的所有键,而只是要求访问key4['key5']
内容。如果这不是什么意思,那么您是在要求讨好您的问题以使其更清楚;-)
答案 1 :(得分:1)
我猜您想在django模板中使用for循环来执行此操作,您必须先将字典传递给views文件中的模板,例如这样,确保您在字典周围添加方括号,如下所示:
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循环时,您可以像在上面放置{{i.key4.key5.key6}}
时一样访问key4中的所有iteam。
这是Django模板https://docs.djangoproject.com/en/3.0/ref/templates/builtins/
我假设这就是您想要做的。
答案 2 :(得分:0)
如果您只想打印问题中的内容,则可以,但是如果我们不知道字典的确切结构,则可以在django视图中而不是在django模板中。
您无法在django模板中打印一个字典的值, 但是您可以在Django视图中执行此操作。
查看此帖子click here,然后对视图进行一些更改。
答案 3 :(得分:0)
这对我有用:
Select Discount = choose(aft,.05,.10,.15) + choose(health,.02,.02,.03)
From YourTable