У меня есть следующий код в Django:Проблемы пытаются форматировать валюту с Python (Django)
import locale
locale.setlocale(locale.LC_ALL, '')
def format_currency(i):
return locale.currency(float(i), grouping=True)
Он работает на некоторых компьютерах в режиме разработчика, но как только я пытаюсь развернуть его на производстве я получаю эта ошибка:
Exception Type: TemplateSyntaxError
Exception Value: Caught ValueError while rendering: Currency formatting is not possible using the 'C' locale.
Exception Location: /usr/lib/python2.6/locale.py in currency, line 240
странная вещь, что я могу сделать это на сервере, и он будет работать без каких-либо ошибок:
python manage.py shell
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'en_CA.UTF-8'
>>> locale.currency(1, grouping=True)
'$1.00'
я .. не получаю it.i
Посмотрите на библиотеку [babel] (http://babel.edgewall.org/): http://babel.edgewall.org/wiki/ApiDocs/0.9/babel.numbers – codeape
У меня был тот же проблема. Он работал в оболочке (оболочка manage.py), но не от MVT. Мне пришлось использовать 'locale.setlocale (locale.LC_ALL, 'en_US.UTF-8')', потому что, по-видимому, у меня не было локали 'en_CA.UTF-8'. – Furbeenator