如何限制列表对象模板的一面,而不是视图的一面

限制对象的方法之一是为这样的函数添加一个限制

def ten_objects(): obj = Model.objects.all()[0:10] # limit to 10 return {'objects': obj} 

然而,你如何在模板内而不是在视图内实现这一点?

我知道你可以通过模板中的对象进行过滤并限制字符,但是你怎么实际限制循环中显示的对象的数量。 通过模板。 例如下面的代码将遍历所有对象….

  <ul> {% for new in news %} <li> <p>{{ news.title }}</p> <p>{{ news.body }}</p> </li> {% endfor %} </ul> 

如何打破循环,在第一个3个对象/物品之后说。 而我该如何在模板内部做到这一点。 提前致谢。

您可以在模板中使用slicefilter。 这与视图中的切片完全相同。

 {% for new in news|slice:":10" %} 

你想使用切片模板filter

这是你的例子改变使用它:

 <ul> {% for new in news|slice:":3" %} <li> <p>{{ new.title }}</p> <p>{{ new.body }}</p> </li> {% endfor %} </ul>