我在 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'
我..不明白。我
最佳答案
在生产服务器上,试试
locale.setlocale( locale.LC_ALL, 'en_CA.UTF-8' )
而不是
locale.setlocale( locale.LC_ALL, '' )
当您使用''
时,区域设置为用户的默认设置(通常由LANG
环境变量指定)。在生产服务器上,这似乎是“C”,而作为测试用户,它似乎是“en_CA.UTF-8”。
关于python - 尝试使用 Python (Django) 格式化货币时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952790/