从views.py发送到模板2数组:
['cat','dog','mause']
['one','two','three']
模板:
{% for value in animal %}
animal:{{ value }} \ how meny {{ how_many[(forloop.counter0)] }}
{% endfor %}
在for循环中,我想读取一个迭代,然后在第二个数组中使用它,但我不能让它工作。我是初学者。
答案 0 :(得分:6)
根据文档you can't do that straightforward:
请注意,{{foo.bar}}之类的模板表达式中的“bar”将被解释为文字字符串,如果模板上下文中存在变量“bar”,则不会使用变量“bar”的值。
我建议您将zip(animal, how_many)
添加到模板的上下文中:
context['animals_data'] = zip(animal, how_many)
然后你可以访问这两个列表:
{% for animal, how_many in animals_data %}
{{ animal }} {{ how_many }}
{% endfor %}
答案 1 :(得分:1)
我建议为此问题编写自己的模板标记。将以下内容(来自this SO question)放入名为index的模板中,该模板应保存在templatetags/index.py
中:
from django import template
register = template.Library()
@register.filter
def index(List, i):
return List[int(i)]
现在,加载它并使用它应该很简单:
{% load index %}
{% for value in animal %}
animal:{{ value }} \ how meny {{ how_meny|index:forloop.counter0 }}
{% endfor %}
答案 2 :(得分:1)
试试这个:
animal = ['cat','dog','mause']
how_many = ['one','two','three']
data = zip(animal,how_many)
return render_to_response('your template', {'data': data})
在模板中
{% for i,j in data %}
{{i}} {{j}}
{% endfor %}