我在模板中的django中创建了一个for循环。我有一个声明为groupList = ['superUsers', 'group1', 'group2', 'groupless']
的名称列表。我可以通过说{{ groupList.2 }}
(这输出group2)来呼叫该组的个别成员。但是一旦我尝试在for循环中调用{{ groupList.i }}
,就没有输出。我的代码如下所示:
{% for i in length|get_range %}
{{ groupList.i }} <br /> <br />
{% for staff in staffList.i %}
{{staff}} <br /> <br />
{% endfor %}
{% endfor %}
长度定义为:length = len(groupList)
。
我希望能够显示第一个组列表名称后跟一个名称列表,然后是第二个groupList名称,然后是相应的名称列表。我做错了什么?
答案 0 :(得分:0)
尝试将另一个模板变量定义为:
foo = zip(groupList, staffList)
并使用它:
{% for group, staff in foo %}
{{ group }}
{{ staff }}
{% endfor %}
似乎是做你想做的最优雅的方式(imho。)
答案 1 :(得分:0)
以下是我如何根据您的需求进行更改:
{% for i in length|get_range %}
{% with i as index %}
{% with i|slugify|add:":"|add:i as subset %}
{% with staffList|slice:subset as sublist %}
<p>Previous item: {{ sublist.0 }}</p>
{% endwith %}
{% endwith %}
{% endwith %}
{% endfor %}
所以这绝对不是一个优雅的解决方案,但是当我想使用计算值时,这就是我执行set / list .
查找的方式。
实际上,aviraldg的解决方案更加优雅,并且使用更好的方法来实现您想要完成的任务。