Wie erhalte ich die Anzahl der Elemente in einer Liste in der jinja2-Vorlage?
Zum Beispiel in Python:
print(template.render(products=[???]))
und in jinja2
<span>You have {{what goes here?}} products</span>
<span>You have {{products|length}} products</span>
Sie können diese Syntax auch in Ausdrücken wie verwenden
{% if products|length > 1 %}
Die integrierten Filter von jinja2 sind hier dokumentiert . und speziell, wie Sie bereits gefunden haben, length
(und sein Synonym count
) ist dokumentiert für:
Gibt die Anzahl der Elemente einer Sequenz oder Zuordnung zurück.
Wie Sie gefunden haben {{products|count}}
(oder gleichwertig {{products|length}}
), wird in Ihrer Vorlage die "Anzahl der Produkte" ("Länge der Liste") angegeben.
{% set item_count = items | length %}
solangeitems
es eine Liste, einAlex 'Kommentar sieht gut aus, aber ich war immer noch verwirrt mit der Verwendung von Range. Das Folgende hat für mich funktioniert, während ich an einer Bedingung mit Länge innerhalb des Bereichs gearbeitet habe.
quelle
Ich habe ein Problem mit der Länge None festgestellt, das zu einem internen Serverfehler führt: TypeError: Objekt vom Typ 'NoneType' hat keine len ()
Meine Problemumgehung zeigt nur 0 an, wenn das Objekt Keine ist, und berechnet die Länge anderer Typen, wie z. B. Liste in meinem Fall:
quelle