Django - доступ к RequestContext из пользовательского фильтра

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])
14
задан Serjik 19 December 2015 в 11:23
поделиться

2 ответа

Если вы создаете тег шаблона вместо фильтра, вам предоставляется контекст для работы (который содержит запрос). http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-tags

7
ответ дан 1 December 2019 в 14:22
поделиться

Это можно сделать с помощью фильтра. Сначала убедитесь, что у вас есть «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}}

Или что-то вроде это то, что вы считаете довольно ужасным?

3
ответ дан 1 December 2019 в 14:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: