Eine Möglichkeit, Objekte einzuschränken, besteht darin, einer solchen Funktion eine Einschränkung hinzuzufügen
def ten_objects():
obj = Model.objects.all()[0:10] # limit to 10
return {'objects': obj}
Wie erreichen Sie dies jedoch innerhalb einer Vorlage und nicht innerhalb einer Ansicht?
Ich weiß, dass Sie Objekte in einer Vorlage filtern und Zeichen begrenzen können, aber wie können Sie die Anzahl der in einer Schleife angezeigten Objekte tatsächlich begrenzen? Über die Vorlage. Der folgende Code durchläuft beispielsweise alle Objekte ....
<ul>
{% for new in news %}
<li>
<p>{{ news.title }}</p>
<p>{{ news.body }}</p>
</li>
{% endfor %}
</ul>
Wie breche ich die Schleife, sagen wir nach den ersten 3 Objekten / Gegenständen. Und wie mache ich das in der Vorlage? Danke im Voraus.
slice
</a>Antworten:
Es gibt einen
slice
Filter, den Sie in Vorlagen verwenden können. Dies funktioniert genauso wie das Schneiden in der Ansicht.quelle
{% for object in user.objects.all %}
, können Sie verwenden{% for object in user.objects.all|slice:":10" %}
Sie möchten den Slice- Vorlagenfilter verwenden
Hier ist Ihr Beispiel geändert, um es zu verwenden:
quelle
{{ new.title}}
und{{ new.body }}