【问题标题】:How to iterate the values in the list in django template?如何在 django 模板中迭代列表中的值?
【发布时间】:2018-01-16 05:11:25
【问题描述】:

我将在 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)

【问题讨论】:

标签: django templates filter


【解决方案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 %}

【讨论】:

  • 成功了。我还需要知道如何访问 list 列表。 bcoz domain_data 是 list 的列表。所以我需要访问它。
  • 你可以遍历它:{% for dd in item.2 %}
【解决方案2】:

可以这样做:

views.py

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

现在在模板中

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

【讨论】:

  • 模板` {% for i in length %} {{header_list.i}} {{domain_data.i}} {% endfor %} ` Views.py context = { 'header_list' : (header_list), 'domain_list' : abt_link , 'domain_data' : dom_data , 'domain_data' : dom_data, 'length' : range(n) ,}
  • 不要使用长度使用n
  • 但两者都是一样的,不是吗?
  • 不,长度是在 Django 模板中预定义的,所以它可能会覆盖
  • 还是什么都不打印
猜你喜欢
  • 2018-07-31
  • 2019-03-05
  • 2021-10-28
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 2015-10-16
相关资源
最近更新 更多