如何在django模板中设置区域设置/本地化货币符号

时间:2016-05-20 15:44:49

标签: python django locale

我试图在我的django模板中放置我的货币符号的位置(在数字和间距都很重要之前的vs之前)。例如:

<span>{{ price }} {{ some_model.currency }}</span>

其中:

  • some_model是一个对象,其属性currency是一个符号,例如&#34;€&#34;或&#34; $&#34;或&#34; RMB&#34;。
  • 除了货币,我还知道区域设置some_model.locale

在咨询localization docs时,似乎django可以格式化时间和数字,而不是货币?我可以编写自定义过滤器{{ price | currency_filter }},但如何在过滤器代码中设置(并随后获取)会话区域设置?理想情况下,我希望能够在登录时设置会话的区域设置,就像您可以设置语言一样:

from django.utils.translation import LANGUAGE_SESSION_KEY
def login_view (request):
    ...
    request.session[LANGUAGE_SESSION_KEY] = some_model.locale

然后编写某种模板过滤器:

def currency_filter (number):
   #hopefully some inbuilt session method to get the locale, then:
   if locale == 'en-US':
       return '$' + number
   #etc

这可能吗?

0 个答案:

没有答案