9

簡単な質問が簡単な答えを得ることを願っています。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"

両方のフィルターを同時に適用するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

6

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

どちらも文字列を返すため、Djangoでこれら2つのフィルターを組み合わせることはできません。そのためには、必要な動作を行う独自のフィルターを作成する必要があります。作業を簡単にするために、いつでもデフォルトのフィルターのコードから始めて、仕様に合わせて変更することができます。floatformatコードはここにあり、localizeここにあります

于 2012-11-12T00:11:16.260 に答える