1

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

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

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

还有其他方法吗?

更新!

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

{<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
    }
4

3 回答 3

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)]

于 2012-06-26T11:48:28.877 回答
0

根据您有问题的更新。

视图.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
    }

模板.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 %}
于 2012-06-26T13:50:12.027 回答
0

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

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

于 2020-06-18T13:28:27.040 回答