有人可以帮我用django模板系统。这是我在视图中的设置:
html_vars = {
'some_var1': 'some_val1',
'some_var2': 'some_val2',
'cat': {
't_cat21' : { 'cats': ['val21_1', 'val21_2', 'val21_3'], 'info': 'text21' },
't_cat22' : { 'cats': ['val22_1', 'val22_2', 'val22_3'], 'info': 'text22' },
't_cat23' : { 'cats': ['val23_1', 'val23_2', 'val23_3'], 'info': 'text23' },
},
}
def home(request):
render_to_response('home.html', html_vars)
我想在html中得到这个结果:
t_cat21 (text21) - val21_1, val21_2, val21_3
t_cat22 (text22) - val22_1, val22_2, val22_3
t_cat23 (text23) - val23_1, val23_2, val23_3
但是我在从django模板中读取数据时遇到了问题。我理解起点:
{% for category, values in cat.items %}
{{ category }}
???
{% endfor %}
然后我被卡住了(
更新
感谢您的帮助。不幸的是还不能投票给答案。
答案 0 :(得分:2)
嗯,在循环内部values
是内部字典。因此,您可以从那里提取所需的值:
{{ category }} ({{ values.info }}) - {{ values.cats|join:", " }}
答案 1 :(得分:0)
试试这个:
{% for category, item in cat.items %}
{{ category }} ({{ item.info }}) - {% for val in item.cats %}{{ val }} {% endfor %}
{% endfor %}
点符号将按此顺序尝试字典查找,属性查找和列表索引查找。这意味着item.info
将成为您的信息文本,item.cats
将成为您的值列表。