Django - 在模板表单中同步迭代2个对象

时间:2014-02-03 01:50:05

标签: django templates

如何在模板表单中同步迭代2个对象?

我的观点中有两个对象;一个对象是产品,其他价格。两者都是清单。 我想在模板表单中同时循环浏览产品和价格。

通常在python中我只会做一个简单的while循环:

n = 0
while n < len(products):
   print products[n], prices[n]
   n+=1

我还没有在模板表单中找到任何相似内容。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可能希望在https://docs.djangoproject.com/en/dev/ref/templates/builtins/

使用forloop.counter,docs

答案 1 :(得分:1)

您可以编写自定义模板过滤器来获取列表中的第n个项目,但这就是我要做的:

在视图中将2个列表拼凑在一起:

products_prices = zip(products, prices)

然后循环遍历模板中的循环列表:

{% for product, prices in products_prices %}
    {{ product }}, {{ price }}
{% endfor %}

答案 2 :(得分:1)

内置的模板标签没有一种简单的方法可以做到这一点,我记得。最简单的方法是在视图中将两个列表压缩在一起,然后在上下文中提供压缩数据结构。如果您有冒险精神,也可以编写自定义zip模板标记。