在Django模板中控制for循环

时间:2012-12-10 11:01:20

标签: python django

我不太了解Django或Python,但我知道在模板中使用简单的for循环会产生问题。

我想要做以下事情并想知道我的选择 - 在模板中有一个简单的方法吗?

{% for image in my_images %}  //only loop through 1-10

然后:

{% for image in my_images %}  //only loop through 10-20

谢谢,

2 个答案:

答案 0 :(得分:3)

如果my_images是一个列表,那么您正在寻找the slice filter

{{ some_list|slice:":2" }}
     

如果some_list为['a', 'b', 'c'],则输出为['a', 'b']

当然,在优化注释中,通常最好在视图级别执行此操作,而不是获取超出需要的记录。

答案 1 :(得分:0)

如果您需要所有数据但希望以块的形式显示,您可以像这样拆分列表

def Chunks(l, n):
    return [l[i:i+n] for i in range(0, len(l), n)]

其中n =任何数字,在您的情况下,它将是10

然后你需要做的就是遍历模板中的分块列表。