Data是来自django.utils.datastructures import SortedDict
的排序Dict
{'test1': '-10', 'quiz1': '65', 'quiz2': '40', 'quiz3': '55'}
此模板代码:
{% for key1 in Data %}
<td>key: {{ key1|capfirst }} - value: {{Data.key1}} - Data: {{ Data }}</td>
{% endfor %}
收益率:
key: Quiz1 - value: - Data: {'test1': '-10', 'quiz1': '65', 'quiz2': '40', 'quiz3': '55'}
key: Quiz2 - value: - Data: {'test1': '-10', 'quiz1': '65', 'quiz2': '40', 'quiz3': '55'}
key: Quiz3 - value: - Data: {'test1': '-10', 'quiz1': '65', 'quiz2': '40', 'quiz3': '55'}
key: Test1 - value: - Data: {'test1': '-10', 'quiz1': '65', 'quiz2': '40', 'quiz3': '55'}
我在Doc中尝试过不同的例子,但我被卡住了。
编辑:
我试过这个代码:
<table border="1">
<tr>
{% for key1 in Data %}
<td>{{ key1|capfirst }}</td>
{% endfor %}
</tr>
<tr>
{% for key2 in Data %}
<td>key: {{ key2|capfirst }}| Data: {{Data.key2}}| Static Keyed: {{ Data.quiz1 }}| AllData: {{ Data }}</td>
{% endfor %}
</tr>
<tr>
{% for key,value in Data %}
<td>key: {{key}}: value: {{value}}</td>
{% endfor %}
</tr>
</table>
这就是结果:
<table border="1">
<tr>
<td>Quiz1</td>
<td>Quiz2</td>
<td>Quiz3</td>
<td>Test1</td>
</tr>
<tr>
<td>key: Quiz1| Data: | Static Keyed: 65| AllData: {'test1': '56', 'quiz1': '65', 'quiz2': '75', 'quiz3': '25'}</td>
<td>key: Quiz2| Data: | Static Keyed: 65| AllData: {'test1': '56', 'quiz1': '65', 'quiz2': '75', 'quiz3': '25'}</td>
<td>key: Quiz3| Data: | Static Keyed: 65| AllData: {'test1': '56', 'quiz1': '65', 'quiz2': '75', 'quiz3': '25'}</td>
<td>key: Test1| Data: | Static Keyed: 65| AllData: {'test1': '56', 'quiz1': '65', 'quiz2': '75', 'quiz3': '25'}</td>
</tr>
<tr>
<td>key: : value: </td>
<td>key: : value: </td>
<td>key: : value: </td>
<td>key: : value: </td>
</tr>
</table>
数据在那里,但django不允许我使用变量作为键。我的问题是,我希望表随着传递给它的测试/等级对数量的变化而动态增长。这正常吗?
编辑:
事实证明,我使用的django版本与我想象的不同。这段代码将做我在django: 0.96版本中尝试做的事情
<tr>
{% for data in Data.items %}
<td>{{data.0}}: {{data.1}}</td>
{% endfor %}
</tr>
感谢所有帮助我的人,尽管我最初提供了错误的信息。
{% for key, value in Data.items %}
<td>key: {{ key|capfirst }} - value: {{ value }} - Data: {{ Data }}</td>
{% endfor %}
试试这个。以前的解决方案仅适用于django>1.0
{% for data in Data.items %}
<td>key: {{ data.0 }}: value: {{ data.1 }}</td>
{% endfor %}
如果我没有错,SortedDict继承了Dict,我认为你可以这样使用它:
{% for key, value in Data %}
<td>key: {{ key|capfirst }} - value: {{value}}</td>
{% endofr %}
但我恐怕不清楚你的字典里有什么值。