这是一个奇怪的问题,但我希望能够使用不同的{% for loops %}
在我的模板上多次显示相同的查询集,我正在尝试避免复制粘贴每个{% for loops %}
。< / p>
假设我的 views.py 像这样:
...
chicken = Chicken.objects.filter(id=1)
return render(request, 'chicken.html', {'chicken':chicken}
chicken.html:以下示例是我要避免的。
<!-- {{ egg }} has the same value everywhere -->
{% for egg in chicken %} <!-- has a different index than other loops -->
<p id="egg_1">{{egg}}</p>
{% endfor %}
{% for egg in chicken %}
<p id="egg_2">{{egg}}</p>
{% endfor %}
{% for egg in chicken %}
<p id="egg_3">{{egg}}</p>
{% endfor %}
...x52...
有没有办法在每个循环上使用不同的索引时自动进行此操作?
我正在寻找类似的东西:
{% for chicken x52 %}
{% for egg in chicken %}
<p id="egg_index">{{egg}}</p> <!-- each with different index -->
{% endfor %}
{% endfor %}
答案 0 :(得分:2)
对于您提供的示例,您可以在上下文中添加变量loops
:
chicken = Chicken.objects.filter(id=1)
loops = range(1, 53)
return render(request, 'chicken.html', {'chicken':chicken, 'loops': loops}
然后在模板中循环loops
:
{% for loop in loops %}
{% for egg in chicken %} <!-- has a different index than other loops -->
<p id="egg_{{ loop }}">{{egg}}</p>
{% endfor %}
{% endfor %}
如果您不想在上下文中添加变量,this question上会建议一些不同的方法,有些方法比其他方法更为粗糙。