遍历Django模板中的嵌套字典

时间:2020-04-20 13:13:55

标签: python django loops dictionary django-templates

我的Django模板的上下文字典如下:

{'key1':'1',
'key2':'2',
'key3':'3',
'key4':{'key5':{'key6':'6', 'key7':'7', 'key8':'8'}}}

我想遍历字典并打印如下内容:

一些标签 = 6
一些标签 = 7
一些标签 = 8

如何在Django模板中实现这一目标?

4 个答案:

答案 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/

中for循环的文档

我假设这就是您想要做的。

答案 2 :(得分:0)

如果您只想打印问题中的内容,则可以,但是如果我们不知道字典的确切结构,则可以在django视图中而不是在django模板中。

您无法在django模板中打印一个字典的值, 但是您可以在Django视图中执行此操作。

查看此帖子click here,然后对视图进行一些更改。

答案 3 :(得分:0)

这对我有用:

Select Discount = choose(aft,.05,.10,.15) + choose(health,.02,.02,.03)
 From  YourTable
相关问题