python - 在 Django 中本地化的数字格式?

标签 python django django-templates

希望简单的问题得到简单的答案。 我只想编写 Django 的过滤器,这样我就可以得到格式化的 float 区域设置:

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

如何同时应用两个过滤器?

谢谢。

最佳答案

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

要实现您想要的效果,您不能在 Django 中组合这两个过滤器,因为它们都返回一个字符串。为此,您必须制作自己的过滤器来执行您想要的行为。为了使事情变得更简单,您始终可以从默认过滤器中的代码开始,然后根据您的规范进行修改。 floatformat代码是here并且 localizehere .

关于python - 在 Django 中本地化的数字格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13335554/

相关文章:

python - 在远程服务器上运行命令以秒为单位查找正常运行时间

python - 使用 sqlalchemy create_engine 配置查询/命令超时?

python - Odoo 不显示 xpath 中的字段标签

python - 如何在外键下拉列表中显示属性值而不是 ParentEvent 对象?

python - 我如何使用Django查询集过滤器创建views.py来比较django中两个不同表的特定值?

python - 在保存 Django 模型时如何避免递归

css - 如何在模板之间切换 css 文件?

python - Pandas Drop Duplicates Series 散列错误

bootstrap-4 - for 循环中的 Bootstrap 模态

django - 如何传递 bool 关键字参数以及使用 "Include"模板标记