【发布时间】:2011-01-17 05:48:10
【问题描述】:
我的模型返回小数 (1234567.50),我似乎无法显示带有千位分隔符的小数。 Django有办法做到这一点吗?我需要创建自己的模板过滤器吗?
谢谢。
【问题讨论】:
我的模型返回小数 (1234567.50),我似乎无法显示带有千位分隔符的小数。 Django有办法做到这一点吗?我需要创建自己的模板过滤器吗?
谢谢。
【问题讨论】:
一种简单的方法是导入locale 并在您的视图函数中进行格式化。
更容易阅读:http://docs.djangoproject.com/en/dev/topics/i18n/#overview
对于格式本地化,它只是 需要设置 USE_L10N = True in 你的设置文件。如果设置了 USE_L10N 为 True,Django 将显示数字 和当前格式的日期 语言环境。包括字段 模板上的表示,以及 管理员允许的输入格式。
【讨论】:
USE_L10N 不像这里stackoverflow.com/questions/7918523/django-localisation 那样工作时会发生什么
您可以使用intcomma 过滤器,但我认为它不适用于 Decimal 对象,它适用于 Decimal 对象。 你必须先转换成浮点数/字符串。
【讨论】:
{% load humanize %} 才能使用intcomma。您也可以将其与floatformat 结合使用以更改显示的小数位数。
intcomma 与 floatformat 结合使用,从而获得两者的好处(intcomma 用于千位分隔符,floatformat 用于最小或没有点分隔符)。
在settings.py中为已安装的应用添加humanize,并在模板中加载。
{% load humanize %}
{{ my_num|intcomma }}
【讨论】: