我對Django或Python沒有太多瞭解,但我知道在模板中使用簡單的for循環會產生問題。在Django模板中控制for循環
我想做下面的事,想知道我的選擇是 - 有一種簡單的方法可以在模板中做到這一點?
{% for image in my_images %} //only loop through 1-10
然後:
{% for image in my_images %} //only loop through 10-20
感謝,
我對Django或Python沒有太多瞭解,但我知道在模板中使用簡單的for循環會產生問題。在Django模板中控制for循環
我想做下面的事,想知道我的選擇是 - 有一種簡單的方法可以在模板中做到這一點?
{% for image in my_images %} //only loop through 1-10
然後:
{% for image in my_images %} //only loop through 10-20
感謝,
如果my_images
是一個列表,您正在尋找the slice
filter:
{{ some_list|slice:":2" }}
如果some_list是
['a', 'b', 'c']
,輸出將是['a', 'b']
。
當然,在優化說明中,通常不會獲取比您需要的更多的記錄,因此在視圖級別執行此操作通常會更好。
如果你需要的所有數據,但要在塊來顯示它,您可以分割您的名單像這樣
def Chunks(l, n):
return [l[i:i+n] for i in range(0, len(l), n)]
其中n =任意數量的,在你的情況下,將10
然後,您只需循環模板中的分塊列表即可。
這是一個非常醜陋的方式,請檢查['itertools'' grouper()'配方](http://docs.python.org/3/library/itertools.html#itertools-recipes),它適用於任意的iterables ,而不僅僅是列表,並且不通過索引進行循環。 –
謝謝你一定會看看那些。 –
對於子集,{{some_list | slice:「2:6」}}}。 Wierd沒關係,但是對於循環不是。謝謝很多! – rix