2010-10-11 3 views
55

Один из способов ограничить объекты, чтобы добавить ограничение на функцию как этотКак ограничить список объектов сторону шаблона, а не вид сбоку

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 объектов/предметов. И как это сделать внутри шаблона. Заранее спасибо.

+1

'slice'

ответ

127

Фильтр по slice, который вы можете использовать в шаблонах. Это работает точно так же, как нарезка в представлении.

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

Вы хотите использовать slice шаблон фильтра

Вот ваш пример изменен, чтобы использовать его:

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

Я знаю, что я вроде нытье, но это должно быть: '{{new.title}}' и '{{new.body}}' – Hussam

+0

Это более полный пример кода, чем принятый ответ, это более полезный ответ, поэтому я поддержал и объясняю, почему – Keith

Смежные вопросы