Django模板 - 使用递增值呈现字典列表

时间:2016-07-06 16:06:42

标签: python django django-templates

如果不增加模板变量,这将是一种hacky方式,我怎么能记住"我的subskill变量所处的级别是正确的"增量" Django模板中的级别计数器?

我有一个如下所示的词典列表:[{'level': 0, 'skill': 'style a page using CSS'}, {'level': 0, 'skill': 'download JSFiddle'}, {'level': 1, 'skill': 'learn django'}, {'level': 2, 'skill: 'customize a template'}]

我希望像这样呈现:

enter image description here

但我无法找到在django模板中正确增加计数器变量的方法。

这就是我目前正在使用的内容:

{% with level=0 %}
<h1 align="center"> Level: {{level}} </h1>
{% for subskill in subskills %}

  {%if subskill.level > level%}

    <h1 align="center"> Level:{{level|add:1}} </h1>
  {%endif%} ... {%endfor%} {%endwith%}

我现在所拥有的只会将级别增加到1,但不会存储此增量。所以它是0级,1级,1级,1级

2 个答案:

答案 0 :(得分:0)

正如评论中所建议的那样,通过将我的列表结构更改为

subskills = {0:[{'skill': 'style a page using CSS'}, {'skill': 'download JSFiddle'}], 1: [{'skill': 'learn django'}], 2: [{'skill: 'customize a template'}]}

使用

传递给视图

return render(request, 'subskills.html', {'subskills': subskills})

然后在模板中使用:

进行渲染

{% for level, subskill_list in subskills.items%} <h1 align="center"> Level: {{level}} </h1> {% for subskill in subskill_list %} render subskill here... {% endfor %} {% endfor %}

答案 1 :(得分:0)

谢谢彼得,它帮助了我!

您在回答中回答:

$./bin/mystrcpy
s1:  Hello

The length of s1: 5

Doing strcat(s1, s2)
s1:  Hello World
The length of s1: 11

Doing strcpy(s1, s2)
s1:  World
The length of s1: 5

它将再次给出字典。 要在其中呈现键和值, 我们可以使用:

    {% for level, subskill_list in subskills.items%}
        <h1 align="center"> Level: {{level}} </h1>
        {% for subskill in subskill_list %}
            render subskill here...
        {% endfor %}
    {% endfor %}

这第一和第二部分将为您提取与词典中的项目相对应的键和值。