如何格式化django中的数字并尊重本地化

时间:2018-05-26 23:23:11

标签: python django localization

我编写了一个这样的自定义过滤器,它在util文件中调用此方法:

def util_format_number(value):
    return "{:,.1f}".format(value)

这个想法是只显示一个小数位...但是当在模板中使用时,它不会给我一个像我在设置中配置的本地化数字:

LANGUAGE_CODE = 'es-es'
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = True
DECIMAL_SEPARATOR = ','
THOUSAND_SEPARATOR = '.'
NUMBER_GROUPING = 3

期望的结果是23.444.523,3

我的实际过滤器如下所示:

@register.filter
def format_number(value):
    return util_format_number(value)

我希望不仅可以在模板中使用格式化程序,还可以在我创建自定义图形的视图代码中使用(我稍后会在模板中打印)。

任何提示?

提前致以最诚挚的问候和谢意。

1 个答案:

答案 0 :(得分:0)

如果此数字格式是您的本地化格式,则会有一个内置过滤器,可以执行我认为您的过滤器尝试完成的操作:https://docs.djangoproject.com/en/2.0/topics/i18n/formatting/#template-filters

如果这不是您的速度,并且您想要更多定制的东西,您可以从该过滤器的源代码中获取本地化调用并根据您的需求进行自定义:

{*Web
dddd
}
ddd
{*Web
*}

希望这可以帮助你!