Django中的数字格式?

时间:2012-11-11 21:19:14

标签: python django django-templates

希望简单的问题得到一个简单的答案。 我只想编写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"

如何同时应用这两种过滤器?

感谢。

1 个答案:

答案 0 :(得分:5)

Django的floatformat过滤器返回一个字符串,实际上不是一个浮点数,所以当你将该值传递给localize时,你传递的是一个字符串,而不是一个数字(int,float等)和因此只返回给定的字符串。

为了达到你想要的效果,你不能在Django中组合这两个过滤器,因为它们都返回一个字符串。要做到这一点,你必须制作自己的过滤器,它将执行你想要的行为。为了简化操作,您始终可以从默认过滤器中的代码开始,并根据您的规范进行修改。 floatformat代码为herelocalizehere