Tôi có đoạn code sau trong Django:vấn đề cố gắng để định dạng tiền tệ với Python (Django)
import locale
locale.setlocale(locale.LC_ALL, '')
def format_currency(i):
return locale.currency(float(i), grouping=True)
Nó làm việc trên một số máy tính trong chế độ dev, nhưng ngay sau khi tôi cố gắng để triển khai nó đến sản xuất tôi nhận được lỗi này:
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
điều lạ là tôi có thể làm điều này trên các máy chủ sản xuất và nó sẽ làm việc mà không có bất kỳ lỗi:
python manage.py shell
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'en_CA.UTF-8'
>>> locale.currency(1, grouping=True)
'$1.00'
tôi .. không nhận được nó.Tôi
Hãy xem thư viện [babel] (http://babel.edgewall.org/): http://babel.edgewall.org/wiki/ApiDocs/0.9/babel.numbers – codeape
Tôi đã có cùng vấn đề. Nó hoạt động trong shell (manage.py shell), nhưng không phải từ MVT. Tôi đã phải sử dụng 'locale.setlocale (locale.LC_ALL, 'en_US.UTF-8')' vì rõ ràng, tôi không có ngôn ngữ 'en_CA.UTF-8'. – Furbeenator