我正在尽力不在我的代码中重复自己,但我遇到了一个问题,在我的模板中按键循环字典。
我有两个词:
exampledict={'firstkey':firstval, 'secondkey':secondval}
keys=['firstkey', 'secondkey']
keydict={'keys':keys}
在我的模板中,我想使用keydict遍历exampledict:
<tr>
{% for val in keydict %}
<td>{{ exampledict.val }}</td>
{% endfor %}
</tr>
我注意到这种变量组合根本不起作用,我尝试使用:
{'firstkey':'firstkey'}
然后将其发送到模板并稍后尝试
{{ exampledict.firstkey }}
有没有更好的方法来完成我在这里要做的事情?
修改1:
手动浏览每个密钥:
<td> {{ exampledict.firstkey }} </td> <td> {{ exampledict.secondkey }} </td>
其中firstkey和secondkey是exampledict的实际dictkey,虽然它会重复很多次。
编辑2:
views.py
def tabletest(request):
exampledict={'firstkey':'firstval', 'secondkey': 'secondval'}
keydict={
'keys':['firstkey', 'secondkey']
}
return render(request, 'MinaFakturor/tabletest.html', {'exampledict':exampledict, 'keydict':keydict})
模板
<table>
<thead>
<tr>
{% for val in keydict.keys %}
<th>{{ val }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
<tr>
{% for val in keydict.keys %}
<td>{{ exampledict.val }}</td>
{% endfor %}
</tr>
<tr>
<td>{{ exampledict.firstkey }}</td>
</tr>
</tbody>
</table>
产生这个结果:
如果删除exampledict.firstkey
术语,则表格中不会生成任何内容。