如何更改 django-oscar 仪表板上的货币符号?

How do I change currency symbol on django-oscar dashboard?

如标题所述,我想更改 Django-oscar 仪表板上的默认货币。它显示为 £,我需要 R,即南非。我已将 settings.py 更改为南非时区 (johannesburg) 并添加了 i18n 路径。我读到前端会检查用户的本地语言以设置货币,但我知道我的浏览器已全部设置为南非语言环境。

在 settings.py 我还添加了以下我可能做错的内容:

OSCAR_CURRENCY_LOCALE = 'ZAR'

OSCAR_CURRENCY_FORMAT = {
    'ZAR': {
        'format': u'R #,##',
    }
}

我不确定这是否是正确的方法,但前端仍然每次都显示 £

Django-oscar 2.0.4, Python 3.7.4, Django 2.2.12

I read that the frontend will check the users local language to set the currency.

不,它不会那样做。货币与语言完全分开,必须由您在代码中明确设置。如果您只在 ZAR 中运行站点,则只需设置 OSCAR_DEFAULT_CURRENCY:

OSCAR_DEFAULT_CURRENCY = 'ZAR'

随后将与您指定的自定义格式一起使用。您还需要确保您的股票记录价格使用南非兰特。

设置货币符号的显示:

./venv/lib/python3.8/site-packages/oscar/defaults.py

OSCAR_DEFAULT_CURRENCY = 'RUB'

您可以查看可能的选项:

venv/lib/python3.8/site-packages/faker/providers/currency/__init__.py


 # List of currency symbols in Unicode, source: https://www.unicode.org/charts/beta/nameslist/n_20A0.html
currency_symbols = {
    'AFN': '\u060B', 'ANG': '\u0192', 'ARS': '\u0024', 'AUD': '\u0024', 'AWG': '\u0192', 'BBD': '\u0024',
    'BDT': '\u09F3', 'BMD': '\u0024', 'BND': '\u0024', 'BOB': '\u0024', 'BRL': '\u0024', 'BSD': '\u0024',
    'BZD': '\u0024', 'CAD': '\u0024', 'CLP': '\u0024', 'CNY': '\u00A5', 'COP': '\u0024', 'CRC': '\u20A1',
    'CUP': '\u0024', 'CVE': '\u0024', 'DOP': '\u0024', 'EGP': '\u00A3', 'EUR': '\u20AC', 'FJD': '\u0024',
    'FKP': '\u00A3', 'GBP': '\u00A3', 'GHS': '\u20B5', 'GIP': '\u00A3', 'GYD': '\u0024', 'HKD': '\u0024',
    'HUF': '\u0192', 'IDR': '\u20A8', 'ILS': '\u20AA', 'INR': '\u20B9', 'IRR': '\uFDFC', 'JMD': '\u0024',
    'JPY': '\u00A5', 'KHR': '\u17DB', 'KPW': '\u20A9', 'KRW': '\u20A9', 'KYD': '\u0024', 'KZT': '\u20B8',
    'LAK': '\u20AD', 'LBP': '\u00A3', 'LKR': '\u20A8', 'LRD': '\u0024', 'MNT': '\u20AE', 'MOP': '\u0024',
    'MUR': '\u20A8', 'MXN': '\u0024', 'NAD': '\u0024', 'NGN': '\u20A6', 'NIO': '\u0024', 'NPR': '\u20A8',
    'NZD': '\u0024', 'OMR': '\uFDFC', 'PHP': '\u20B1', 'PKR': '\u20A8', 'PYG': '\u20B2', 'QAR': '\uFDFC',
    'RUB': '\u20BD', 'SAR': '\uFDFC', 'SBD': '\u0024', 'SDG': '\u00A3', 'SGD': '\u0024', 'SHP': '\u00A3',
    'SRD': '\u0024', 'SYP': '\u00A3', 'THB': '\u0E3F', 'TOP': '\u0024', 'TRY': '\u20BA', 'TTD': '\u0024',
    'TWD': '\u0024', 'UAH': '\u20B4', 'USD': '\u0024', 'UY': '\u0024', 'VND': '\u20AB', 'WST': '\u0024',
    'XCD': '\u0024', 'YER': '\uFDFC', 'ZWD': '\u0024',
}