2010-10-11 8 views
55

Eine der Möglichkeiten, Objekte zu begrenzen, ist eine Beschränkung auf eine Funktion wie dieseWie beschränken Sie Listenvorlage Seite Objekte, anstatt Sichtseite

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

jedoch hinzufügen, wie Sie diese eher innerhalb einer Vorlage erreiche als in einer Ansicht?

Ich weiß, dass Sie Objekte innerhalb einer Vorlage filtern und Zeichen begrenzen können, aber wie begrenzen Sie tatsächlich die Anzahl der in einer Schleife angezeigten Objekte. Über die Vorlage. Mit dem folgenden Code wird eine Schleife durch alle Objekte zum Beispiel ....

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

Wie kann ich die Schleife zu brechen, sagen nach den Tannen 3 Objekte/Gegenstände. Und wie mache ich es in der Vorlage. Danke im Voraus.

+1

'slice'

Antwort

127

Es gibt einen slice Filter, den Sie in Vorlagen verwenden können. Dies funktioniert genauso wie das Schneiden innerhalb der Ansicht.

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

Sie wollen Filter die slice Vorlage verwenden

Hier ist dein Beispiel geändert, es zu benutzen:

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

Ich weiß, ich bin ein bisschen nörgeln, aber es sollte sein: '{{new.title}}' und '{{new.body}}' – Hussam

+0

Dies ist ein vollständigeres Codebeispiel als die angenommene Antwort, dies ist eine hilfreichere Antwort, also habe ich Upvoted und erkläre warum – Keith

Verwandte Themen