2015-01-04 8 views
14

Gibt es eine Möglichkeit, eine Zahl in eine Zeichenfolge in Django Vorlage zu konvertieren? Oder muss ich ein benutzerdefiniertes Template-Tag erstellen? Etwas wie:Django Vorlage in Zeichenfolge konvertieren

{{ 1|stringify }} # '1' 
+3

Was wäre der Unterschied zwischen einer Ganzzahl und einer Zeichenfolge in einer Vorlage? Die Vorlage ist nur Text, alles ist eine Zeichenfolge. –

+1

Nein, mit etwas wie '{% if item.type == content_type%}' würde man ein echtes Ergebnis erzeugen, das andere nicht. – David542

+0

@ David542: Sie könnten '{% if item.type == content_type | add: 0%}' verwenden, um eine Art von Casting zu erreichen. –

Antwort

32

Sie stringformat verwenden können eine Variable in einen String zu konvertieren:

{{ value|stringformat:"i" }} 

Siehe documentation für Formatierungsoptionen (die führende % sollten nicht enthalten sein).

+0

Sie können das zwar tun, aber wie ich im Kommentar notiere, warum würden Sie? Die Ausgabe von '{{value | stringformat:" i "}}' ist genau die gleiche wie die Ausgabe von '{{value}}'. –

+5

@DanielRoseman: Beim Schreiben einer if-Anweisung ist der Typ von Bedeutung - daher kann es erforderlich sein, den Typ in der Vorlage zu konvertieren und diesen Wert später in einem Vergleich zu verwenden. –

+2

Das Hinzufügen von etwas wie '{% mit var =" das ist eine ganze Zahl: "| add: an_int_variable%}' ohne '| stringformat:" i "' zuerst an der 'an_int_variable'. – rinti