2012-11-11 17 views
7

Basit bir soru basit bir cevap alır. Ben sadece yüzer formated olsun böylece Django'nın filtreleri oluşturmak istiyorum yerel ayara duyarlı nokta sayısı:Numara biçimi Django'da yerelleştirildi mi?

{{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" 

nasıl aynı anda hem filtreler uygulayabilirsiniz?

Teşekkürler.

+0

"settings.py" dosyanızdaki ilgili ayarların nasıl göründüğünü bize gösterebilir miyiz? – j0ker

cevap

5

Django'nun floatformat filtresi, bir float numarası değil, bir dize döndürür; bu değeri localize'a ilettiğinizde, bir dize değil, bir sayı (int, float, vb.) Geçirirsiniz ve bu nedenle verilen dizeyi döndürür.

İstediğinizi elde etmek için, bu iki filtreyi Django'da birleştiremezsiniz, çünkü her ikisi de bir dize döndürür. Bunu yapmak için, istediğin davranışı yapacak olan kendi filtresini yapmalısın. İşleri kolaylaştırmak için her zaman varsayılan filtrelerdeki kodla başlayabilir ve bunu spesifikasyonunuza göre değiştirebilirsiniz. floatformat kodu here ve localizehere'dur.