Фильтровать в пользовательском теге Django?
Я создал пользовательский тег, который принимает параметр:
{% panel "most" %}
Я бы использовал add
к параметру:
{% panel "most"|add:"_people" %}
Я ожидаю, что параметром будет "most_people", но вместо этого это "most" | add: "_ people". Кажется, что фильтры не вызываются внутри пользовательских тегов. Как заставить их работать?
1 ответ
Решение
Если вы используете simple_tag
Декоратор, чтобы написать свой собственный тег, вы должны быть в состоянии использовать фильтры на аргументы.
Однако, если вы написали расширенный шаблон тега, то вам нужно будет сделать дополнительную работу, чтобы сделать "most"|add:"_people"
используйте фильтр как хотите.
Одна из работ - использовать {% with %}
тег для присвоения результата фильтра переменной.
{% with panel_name="most"|add:"_people" %}
{% panel panel_name %}
{% endwith %}