У меня есть фильтр currency
, который принимает значение в долларах США и конвертирует его в валюту (USD или GBP). Валюта для конвертирования в хранится в сеансе, но фильтры не принимают 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)