如何在django模板中迭代列表中的值?

时间:2018-01-16 05:11:25

标签: django templates filter

我将在django模板中同时打印四个数组值。像这样 这四个数组长度相等,它们是header_list,domain_list,domain_data,dom

for i in range(10):
      print headerlist[i]
      print domain_list[i]
      print domain_data[i]
      print dom[i]

如何在django模板中实现这些功能。

也尝试了

from django import template

register = template.Library()
@register.filter(name='myrange')
def myrange(number):
    return range(number)

2 个答案:

答案 0 :(得分:1)

您应该在视图中压缩这些项目,而不是将它们单独发送到模板。

data = zip(header_list , domain_list , domain_data , dom)
return render(request, 'my_template.html', {'data': data, ...})

现在你可以做到:

{% for item in data %}
    Header: {{ item.0 }}
    Domain: {{ item.1 }}
    Domain data: {{ item.2 }}
    Dom: {{ item.3 }}
{% endfor %}

答案 1 :(得分:0)

可以这样做:

<强> views.py

n = len(headerlist)
context['n'] = range(n)

现在在模板中

{% for i in n %}
   {{headerlist.i}}
   {{domain_list.i}}
   {{domain_data.i}}
   {{dom.i}}
{% endfor %}