我使用django-money处理英镑(英镑)的金额,但它们的输出为GB£20.00
,而不是£20.00
。尽管settings.LANGUAGE_CODE
为"en-GB"
且settings.USE_L10N
为True
,但仍然如此。
我做错了什么?
答案 0 :(得分:2)
Django-money使用pymoneyed来处理本地化,但不幸的是,在撰写本文时,pymoneyed并未正确设置以处理GBP本地化。我已创建a pull request which fixes it,所以希望这会在某个时候得到解决。
与此同时,您可以通过在运行Django时调用的任何地方添加以下代码来配置Django安装以正确处理它(例如在models.py
中)。
import moneyed
from moneyed.localization import _FORMATTER
from decimal import ROUND_HALF_EVEN
# A unicode GBP sign
POUND_SIGN = u'\u00A3'
_FORMATTER.add_formatting_definition("en_GB",
group_size=3, group_separator=",", decimal_point=".",
positive_sign="", trailing_positive_sign="",
negative_sign="-", trailing_negative_sign="",
rounding_method=ROUND_HALF_EVEN)
_FORMATTER.add_sign_definition('en_GB', moneyed.GBP, prefix=POUND_SIGN)