如何在Django模板中运行multi for循环?

时间:2012-06-26 11:07:05

标签: django django-templates

我有一个模板,我需要同时运行两个for循环。例如:

#pseudocode
{% for x in one%} and {% for y in two %}
 {{x}}, {{y}}
{% endfor %}

PS:上面的代码是伪的。我还找到了一个包,即Djnago-multiforloop

还有其他办法吗?

更新了!

我在python中有一个名为objects的字典,如下所示:

{<User: x>: True, <User: y>: False}

现在我想在我的Django模板代码中使用这些值:

 {% for share_user in objects %} and {% for key, value in objects.iteritems %}
    <tr>
        <td>{{ share_user }}</td> 
        <td><a href="{% url share_edit type type.pk share_user.id %}">{{ value}}</a></td>
    </tr>   
{% endfor %}

我想合并两个for loop,以便模板中的以下代码能够成功运行。

期望的输出: 对于第一次迭代:

x
True

第二次迭代:

Y
False

在我的views.py中:

 permission_obj = somemodels.objects.filter(object_id=object_id)
 for perm in permission_obj:
    s_user.append(perm.user)
    s_edit.append(perm.edit)
 objects = dict(zip(s_user,s_edit))
 extra_context = {
   'objects' : objects
    }

3 个答案:

答案 0 :(得分:1)

2只有你可以这样做:

{% for x, y in one_and_two %}
   {{x}}, {{y}}
{% endfor %}

如果是[1,2,3] 两个是[4,5,6]

one_and_two是[(1,4),(2,5),(3,6)]

答案 1 :(得分:0)

根据您的相关更新。

view.py

permission_obj = somemodels.objects.filter(object_id=object_id)
objects = []

for perm in permission_obj:
   objects.append({'user':perm.user,'edit':perm.edit})

 extra_context = {
   'objects' : objects
    }

template.html

{% for obj in objects %}
    <tr>
        <td>{{ obj.user }}</td> 
        <td><a href="{% url share_edit type type.pk obj.user.id %}">{{ obj.edit }}</a></td>
    </tr>   
{% endfor %}

答案 2 :(得分:0)

如果要遍历2个相同大小的列表,可以在python中使用zip()
请检查此答案以获取详细信息

https://stackoverflow.com/a/14841466/9715289