Как вызвать функцию Django из шаблона и сохранить возврат в переменной
Контекст:
У меня есть фрагмент HTML, который я хочу рассеять в шаблоне на случай, если функция вернет "true".
Детали:
Моя функция
def show_avg_kpi():
return config.avg_times_visible
register.filter('show_avg_kpi', show_avg_kpi)
Шаблон (это кусок кода для отображения или нет):
{% if show_avg_kpi %}
<HTML CODE>
{% endif %}
Мне нужно что-то подобное, но я не знаю, как сохранить результат функции show_avg_kpi в переменной, чтобы использовать его с тегами {% if %}
Заранее спасибо.
Вы можете использовать register.simple_tag следующим образом
@register.simple_tag
def show_avg_kpi():
return config.avg_times_visible
и в вашем шаблоне следующим образом
{% show_avg_kpi as your_var %}
{% if your_var %}
your code
{% endif %}
Теперь show_avg_kpi будет вызываться только один раз
Я думаю, вы можете использовать теги {% с %}. т.е.:
{% with my_var=show_avg_kpi %}
{% if my_var=condition %}
HTML CODE
{% endif %}
{% endwith %}
Но вы можете использовать my_var только внутри оператора with.
Другой подход заключается в передаче переменной из представления.