如何限制列表对象模板的一面,而不是视图的一面
限制对象的方法之一是为这样的函数添加一个限制
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个对象/物品之后说。 而我该如何在模板内部做到这一点。 提前致谢。
您可以在模板中使用slice
filter。 这与视图中的切片完全相同。
{% 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>