def unique(items):
found = set([])
keep = []
for item in items:
if item not in found:
found.add(item)
keep.append(item)
return keep
print unique([1, 1, 2, 'a', 'a', 3])
Если вы создаете тег шаблона вместо фильтра, вам предоставляется контекст для работы (который содержит запрос). http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-tags
Это можно сделать с помощью фильтра. Сначала убедитесь, что у вас есть «django.core.context_processors.request»
в вашем TEMPLATE_CONTEXT_PROCESSORS
. Если вы этого не сделаете, вы можете добавить это в свой файл settings.py:
TEMPLATE_CONTEXT_PROCESSORS += (
"django.core.context_processors.request"
)
Тогда в вашем шаблоне ваш фильтр будет выглядеть так (при условии, что ваша переменная сеанса называется «currency_type»):
{{value|currency:request.session.currency_type}}
Или что-то вроде это то, что вы считаете довольно ужасным?