python - Django:L10N 和 en-IN

标签 python django

我在谷歌上搜索了很多,以找到与 Django 的 en-INL10N 设置相关的问题的解决方案,但没有找到令人满意的方法。所以,终于回到这里找 friend 了。

我正在努力将货币格式化为印度数字格式化标准。 NUMBER_GROUPING = (3, 2, 0)LANGUAGE_CODE = 'en-IN' 之后。

我当前的 settings.py 文件配置是:

LANGUAGE_CODE = 'en-IN'
USE_I18N = False
USE_L10N = True
USE_THOUSAND_SEPARATOR = True
NUMBER_GROUPING = (3, 2, 0)

也试过设置:

USE_I18N = True

在我使用的模板文件中:

{% load humanize %}
{# where object.price value is 524300 #}
<p>
{{ object.price }}
<!-- and -->
{{ object.price|intcomma }}
</p>

然而这输出:

524,300 而不是 5,24,300

enter image description here

What am I doing wrong, which is stopping Django for follow settings of LANGUAGE_CODE, USE_L10N and NUMBER_GROUPING

适用于hi-IN

If I changes LANGUAGE_CODE = 'hi-IN', I get expected output of formatted currency as 5,24,300. But the problem is our site is not in Hindi language but in Indian English with Hindi localization. What a mess :(

Django Docs甚至显示语言 en_IN 的示例。清楚地告诉它会按照我的预期格式化数字。但这对我不起作用。

设置 LANGUAGE_CODE = 'en_IN' 会引发错误。不接受下划线,但接受连字符。

我当前的系统区域设置如下:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_IN.UTF-8
LC_TIME=en_IN.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_IN.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_IN.UTF-8
LC_NAME=en_IN.UTF-8
LC_ADDRESS=en_IN.UTF-8
LC_TELEPHONE=en_IN.UTF-8
LC_MEASUREMENT=en_IN.UTF-8
LC_IDENTIFICATION=en_IN.UTF-8
LC_ALL=

任何想法或建议将不胜感激!

最佳答案

当“格式”由模板控制时,结果不仅取决于 Django 设置,还取决于系统和浏览器设置

最好的办法是将它作为预先格式化的字符串发送到 html 模板:

pip install Babel

from babel.numbers import format_currency
format_currency(524300, 'INR', locale='en_IN')

结果是 Django 和系统以及浏览器设置:

₹5,24,300.00

关于python - Django:L10N 和 en-IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62160912/

相关文章:

python - pyodbc导入错误: DLL load failed: The specified module could > not be found

python - Django:首先按最后一个条目对数据库导入进行排序,依此类推

Python如何添加多个列表的总和

python - 如何检查 'if'条件中的错误以做出决定?

Django导入导出: Error encountered while trying to read file CSV

python - 在django中使用多个数据库

django - Django:来自自模型实例的字段的默认值

Django 与额外字段的多对多关系

python - 如何使用正确的 dll 文件在 Cython C 扩展中启用第 3 方 C 库?

python - matplotlib:更改单个体素面颜色