python - 尝试使用 Python (Django) 格式化货币时出现问题

标签 python django

我在 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/

相关文章:

python - Django:用于 prefetch_lated 的数据库与父查询不同

python - 如何测量 Python 导入延迟

python - 使用 Python-Rom Redis ORM 实现队列

TeamCity 上的 Python 集成测试

python - Keras - softmax 函数的默认轴设置为 Axis

python - Django - 按评论删除后重定向

django - 新手在 pycharm 中使用 South 时遇到困难 - DatabaseError : no such table: south_migrationhistory

python - 用后续值填充数组

python - 按距离对结果进行排序,并获取它们与查询点之间的距离

python - Heroku 应用程序 : ModuleNotFoundError: No module named 'pwa'