我试图在我的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
这可能吗?