Поместите результат простого тега в переменную

Это работает:

{% get_option 'payment_conditions' '' true %}

Он вызывает функцию с 3 параметрами и возвращает строку: "Я - условия". Отлично.

То, что я хочу сделать сейчас, это поместить это в утверждение IF. Поэтому для этого мне нужно значение в переменную. Что-то вроде:

{% with conditions = get_option 'payment_conditions' '' true %}

Но это не работает. Я также попробовал:

{% get_option 'payment_conditions' '' true as conditions %}

Есть ли способ, которым я могу поместить результат в переменную?? Спасибо

1 ответ

Решение

Пожалуйста, используйте тег присваивания, если вы используете django < 1.9. Док здесь. Я разместил пример в документации здесь:

@register.assignment_tag
def get_current_time(format_string):
    return datetime.datetime.now().strftime(format_string)

Тогда в шаблоне:

{% get_current_time "%Y-%m-%d %I:%M %p" as the_time %}
<p>The time is {{ the_time }}.</p>

Вы можете видеть, что результат тега шаблона становится переменной, используя as заявление. Ты можешь использовать the_time как вам нравится, в том числе if заявление.

Также цитата из документов:

Устаревший с версии 1.9: simple_tag теперь может сохранять результаты в переменной шаблона и должен использоваться вместо этого.

Другие вопросы по тегам