2017-07-05 54 views
0

這是一個奇怪的問題,但我希望能夠在我的模板上使用不同的{% for loops %}多次顯示相同的查詢集,我試圖避免複製每個{% for loops %}是否可以在模板上多次顯示相同的查詢集?

比方說,我有我的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... 

有沒有辦法來automatise其在每次循環不同的索引,而這個?

我在尋找這樣的事情:

{% for chicken x52 %} 
    {% for egg in chicken %} 
     <p id="egg_index">{{egg}}</p> <!-- each with different index --> 
    {% endfor %} 
{% endfor %} 

回答

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上提出了一些不同的方法,其中一些比其他方法更冒險。

+0

正是我在找的:) – Lindow

相關問題