我已在settings.py中设置了USE_L10N = True
但在以下观点中:
from django.contrib.humanize.templatetags.humanize import intcomma
dev view_name(request):
output = intcomma(123456)
所有区域设置的输出始终为“123,456”。
答案 0 :(得分:2)
答案 1 :(得分:1)
我认为 intcomma()对所有语言环境都是一样的:
def intcomma(value):
"""
Converts an integer to a string containing commas every three digits.
For example, 3000 becomes '3,000' and 45000 becomes '45,000'.
"""
orig = force_unicode(value)
new = re.sub("^(-?\d+)(\d{3})", '\g<1>,\g<2>', orig)
if orig == new:
return new
else:
return intcomma(new)
intcomma.is_safe = True
register.filter(intcomma)
您可以修改此功能并将分隔符作为参数传递。
答案 2 :(得分:1)
如果要在模板中打印,可以在settings.py中设置:
USE_THOUSAND_SEPARATOR=True
THOUSAND_SEPARATOR='.'
NUMBER_GROUPING=3
进行3次更改,DECIMAL_SEPARATOR将自动变为','。但你也可以设置它:
DECIMAL_SEPARATOR=','
这种方式你不需要人性化,但我想这会影响这个settings.py文件下的所有应用程序。
答案 3 :(得分:-1)
import locale
locale.format("%d", 123456, True)