2012-11-11 11 views
7

希望簡単な質問は簡単な回答になります。 私はちょうど私がフォーマットされた浮動小数点数のロケール対応得るので、Djangoのフィルタを構成したい:私は同時に両方のフィルタを適用するにはどうすればよい数字形式はDjangoでローカライズされていますか?

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

を?

ありがとうございました。

+0

関連する設定を 'settings.py'のように見せてもらえますか?これを再現できるのでしょうか? – j0ker

答えて

5

Djangoのfloatformatフィルタは実際には浮動小数点数ではないので、その値をlocalizeに渡すと、数値(int、floatなど)ではなく文字列を渡すので、指定された文字列を返します。

Djangoでこれら2つのフィルタを組み合わせることはできません。どちらも文字列を返すためです。これを行うには、あなたが望む振る舞いをする独自のフィルターを作らなければならないでしょう。作業を簡単にするために、デフォルトフィルタのコードから始めて、いつでも仕様に合わせて修正することができます。 floatformatコードはhereであり、localizehereです。

関連する問題