2010-02-16 33 views
9

我的模型返回一个小数(1234567.50),我似乎无法显示带千位分隔符小数。 Django是否有办法做到这一点?我是否需要创建自己的模板过滤器?Django的独立数千模板

谢谢。

回答

20

可以使用intcomma过滤器,但我不认为它会在十进制工作对象,它工作于小数的对象。 您必须先转换为浮点/字符串。

+1

intcomma工作得很好十进制对象。 –

+0

是它没有与十进制对象工作。 感谢。 – mhost

+0

我不知道它的工作在小数对象。更新了答案。 – sykora

3

一个简单的方法是导入locale和做的格式在您的视图功能。

更容易阅读:http://docs.djangoproject.com/en/dev/topics/i18n/#overview

对于格式的定位,它设置USE_L10N =在 设置文件真只是 必要的。如果USE_L10N设置 为True,Django会在当前 区域设置的格式显示数字 和日期。包含字段上模板 表示,并在管理员 允许的输入格式。

+4

的Django 1.2现在有一个USE_THOUSAND_SEPARATOR变量,你可以在settings.py设置。请参阅http://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#use-thousand-separator。这种方法比使用intcomma过滤器容易得多。一旦我将USE_L10N和USE_THOUSAND_SEPARATOR设置为True,我想用数千个分隔符显示的数字就开始自动变魔术了,不需要编辑模板。 更新:此方法似乎与整数一起使用但不多久:( – Eddified

+0

当USE_L10N不能像这里那样工作时发生什么?http://stackoverflow.com/questions/7918523/django-localisation – Sevenearths