2012-11-11 8 views
7

hoffe einfache frage bekommt eine einfache antwort. würde ich nur Filter Djangos komponieren möchte, damit ich formated erhalten Gleitkommazahl locale-aware:Nummernformat in Django lokalisiert?

{{123.45|floatformat:1}} 
"123.5" <= correct 
{{123.45|localize}} 
"123,45" <= correct, in my locales decimal separator is a comma 
{{123.45|floatformat:1|localize}} 
"123.5" <= wrong, point instead of comma. Expected output: "123,5" 

Wie kann ich beide Filter gleichzeitig anwenden?

Danke.

+0

Können Sie uns zeigen, wie die entsprechenden Einstellungen in Ihrem 'settings.py' aussehen, damit wir das reproduzieren können? – j0ker

Antwort

5

Djangos floatformat Filter gibt eine Zeichenfolge zurück, nicht tatsächlich eine Gleitkommazahl. Wenn Sie diesen Wert an localize übergeben, übergeben Sie eine Zeichenfolge, keine Zahl (int, float usw.) und geben daher nur die angegebene Zeichenfolge zurück.

Um zu erreichen, was Sie wollen, können Sie diese beiden Filter in Django nicht kombinieren, da beide eine Zeichenfolge zurückgeben. Um dies zu tun, müssten Sie Ihren eigenen Filter erstellen, der das von Ihnen gewünschte Verhalten ausführt. Um die Dinge einfacher zu machen, können Sie immer mit dem Code in den Standardfiltern beginnen und diesen gemäß Ihrer Spezifikation ändern. floatformat Code ist here und localize ist here.

Verwandte Themen