如何配置django-money以英国格式输出GBP?

时间:2015-09-11 14:56:20

标签: django localization

我使用django-money处理英镑(英镑)的金额,但它们的输出为GB£20.00,而不是£20.00。尽管settings.LANGUAGE_CODE"en-GB"settings.USE_L10NTrue,但仍然如此。

我做错了什么?

1 个答案:

答案 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)