Один из способов ограничить объекты - добавить ограничение к такой функции.
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
</a>Ответы:
Есть
slice
фильтр, который можно использовать в шаблонах. Это работает точно так же, как нарезка в пределах вида.{% for new in news|slice:":10" %}
источник
{% for object in user.objects.all %}
вы можете использовать{% for object in user.objects.all|slice:":10" %}
Вы хотите использовать фильтр шаблона среза
Вот ваш пример, измененный для его использования:
<ul> {% for new in news|slice:":3" %} <li> <p>{{ new.title }}</p> <p>{{ new.body }}</p> </li> {% endfor %} </ul>
источник
{{ new.title}}
и{{ new.body }}