Jor*_*tao 9 django django-templates
我正在使用django的模板系统,我遇到了以下问题:
我将字典对象example_dictionary传递给模板:
example_dictionary = {key1 : [value11,value12]}
Run Code Online (Sandbox Code Playgroud)
我想做以下事情:
{% for key in example_dictionary %}
// stuff here (1)
{% for value in example_dictionary.key %}
// more stuff here (2)
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但是,这不会进入第二个for循环.
的确,如果我放
{{ key }}
Run Code Online (Sandbox Code Playgroud)
在(1)上,它显示正确的键,但是,
{{ example_dictionary.key }}
Run Code Online (Sandbox Code Playgroud)
没有显示.
在这个答案中,有人建议使用
{% for key, value in example_dictionary.items %}
Run Code Online (Sandbox Code Playgroud)
但是,这在这种情况下不起作用,因为我希望(1)具有关于特定键的信息.
我该如何实现这一目标?我错过了什么吗?
dan*_*era 11
我想你正在寻找一个嵌套循环.在外部循环中,您使用字典键执行某些操作,并在嵌套循环中迭代可迭代字典值,即您的案例中的列表.
在这种情况下,这是您需要的控制流程:
{% for key, value_list in example_dictionary.items %}
# stuff here (1)
{% for value in value_list %}
# more stuff here (2)
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
一个样品:
#view to template ctx:
example_dictionary = {'a' : [1,2]}
#template:
{% for key, value_list in example_dictionary.items %}
The key is {{key}}
{% for value in value_list %}
The key is {{key}} and the value is {{value}}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
结果将是:
'a'
1
2
Run Code Online (Sandbox Code Playgroud)
如果这不是您要找的,请使用样品来说明您的需求.