У меня есть фильтр currency
, который принимает значение в долларах США и конвертирует его в валюту (доллары США или фунты стерлингов). Валюта, в которую нужно конвертировать, хранится в сеансе, но фильтры не принимают RequestContext
, поэтому я не могу получить ее прямо оттуда.
Есть ли лучший способ, чем передача соответствующего элемента сеанса в шаблон и из шаблона в фильтр в качестве аргумента? Хотя этот подход работает, он кажется довольно ужасным, и я, вероятно, в конечном итоге передам валюту (почти) каждому шаблону.
Мой фильтр сейчас выглядит примерно так:
def currency(value, currency):
if currency == 'usd':
val = '$%.2f' % value
return mark_safe(val)
d = Decimal(value)
val = '£%.2f' % (d*Decimal('0.63'))
return mark_safe(val)