我是Django
的新手,我已经将两个列表(rawmaterial
和food
)传递给了我的模板,然后我希望得到一个这样的循环:(它是我的目标逻辑,语法不正确)
for(i=0;i<food.length;i++)
<div ,id="menuFood>
<h4> food.name(i)</h4>
<h4> rawmaterial.name(i)</h4>
</div>
但是当我搜索时,我只能找到这样的循环:
{% for o in some_list %}
{% endfor %}
所以使用这种语法,我无法理解如何创建该循环。我认为只有嵌套循环可以通过这种语法来实现..
这是我的观看代码:
def foods(request):
food = Food.objects.all()
raw = [];
.
.
.
raw.append(warehouse)
return render(request, 'polls/foods.html', {'food': food,'rawmaterial': raw})
答案 0 :(得分:1)
您无法在django模板上执行索引,但您可以使用zip
函数将两个列表放在views.py中:
food = Food.objects.all()
raw = []
# ...
raw.append(warehouse)
result = zip(food, raw)
return render(request, 'polls/foods.html', {'result': result})
然后在你的模板中:
{% for food, raw in result %}
<h4>{{ food }}</h4>
<h4>{{ raw }}</h4>
{% endfor %}
顺便说一句,你似乎来自java / c ++背景,因为在python中人们永远不会这样做:
for(i=0; i<food.length; i++)
print food[i]
相反,我们这样做:
for i in food:
print i
Django模板采用了类似的语法,它使编写循环变得更加容易。