Django模板jinja for循环

时间:2020-06-24 15:34:41

标签: django templates jinja2

有人可以建议我如何在Django模板中迭代字典吗?

dic1={5: ['jaw replacement - 23-Jun-2020 (16:20:09.164240)', 'jaw replacement done - 23-Jun-2020 (16:20:51.158085)', 'jaw replacement done,almost done - 23-Jun-2020 (16:25:40.066955)', 'jaw replacement done,almost done 1 - 23-Jun-2020 (16:27:00.355605)', 'jaw replacement done,almost done 2 - 23-Jun-2020 (16:31:35.111660)']}

this is the context i am passing
i need something like this in template
for i in dic1:
    print(i)
    list1=dic1[i]
    for k in list1:
        print(k)

{% for i in notes %}
          {% with list1=dic1[i] %}
            {{list1}}
          {% endwith %}

      {% endfor %}

这不起作用。

3 个答案:

答案 0 :(得分:0)

您可以从视图直接将dic1一个传递到模板,并通过模板\中的字典进行迭代。

可见

return render(request, 'template.html',{'dic1':dic1}) 
#intemplate.html

{% for key, value in dic1 %}
    <tr>
        <td> Key: {{ key }} </td>
      {% for value_in_array in value %}
         <td> Value: {{ value }} </td>
      {% endfor %}
    </tr>
{% endfor %}

答案 1 :(得分:0)

假设您的数据是-

dic1 = {'a': [ [1, 2] ], 'b': [ [3, 4] ],'c':[ [5,6]] }

您可以使用data.items()方法来获取字典元素。注意,在django模板中,我们不放置()。还有一些用户提到值[0]不起作用,如果是这种情况,请尝试values.items

<table>
    <tr>
        <td>a</td>
        <td>b</td>
        <td>c</td>
    </tr>

    {% for key, values in dic1.items %}
    <tr>
        <td>{{key}}</td>
        {% for v in values[0] %}
        <td>{{v}}</td>
        {% endfor %}
    </tr>
    {% endfor %}
</table>

希望它能对您有所帮助。

答案 2 :(得分:0)

在普通的Python中,通常可以通过在字典上使用items()方法来访问键和值。

例如给出字典

    <?php
      $items = array(1, 44, 5, 6, 68, 9);
      $max = 0;
      foreach($items as $item) {
        $max = ($max < $item)?$item:$max;
      }
      echo $max;
    ?>

您应该可以通过以下操作访问它:

some_dic = {'1': 'Hello', '2': 'World'}

您可以在Django模板中遵循相同的原理,并且只需省略“()”,如下所示:

for key, value in some_dic.items():
    print(key, value)