在GAE上的Django中,遍历Dictionary值对我来说不起作用



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 %}

但我恐怕不清楚你的字典里有什么值。

相关内容

最新更新