我有一个模板,我需要同时运行两个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
}
答案 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