шаблонный тег вызывается в условии if - PullRequest
4 голосов
/ 27 мая 2011

Мне интересно, есть ли способ вызвать тег шаблона из оператора if.

Я пытаюсь сделать следующее.

{% for k,v in form.amenities.field.choices %}
    {% if {% check_hidden k %} %}
        {{ v }}
    {% endif %}
{% endfor %}

Тег {% check_hidden k %} возвращает True или False из таблицы для искомого элемента. Я могу подтвердить, что {% check_hidden k %} возвращает либо True, либо False самостоятельно, но мне интересно, могу ли я обернуть вокруг него оператор if?

Приложение, с которым я работаю, является унаследованным, поэтому я пытаюсь минимизировать количество изменений, которые необходимо сделать на данный момент. В настоящее время он просто отображается как {{form.amenities}}, но я добавил в модель дополнительное поле, которое мне нужно проверить перед отображением поля в шаблоне.

Если есть другой способ сделать это, я открыт для предложений.

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 27 мая 2011

Звучит так, как будто check_hidden был написан как тег шаблона, когда необходим фильтр .

{% if k|check_hidden_filter %}
0 голосов
/ 27 мая 2011

Что бы то ни было, что check_hidden делает для значения выбора, должно быть исправлено фундаментальным образом.

Если выбор полей является динамическим, правильный набор вариантов должен быть установлен в функции представления, что исключает необходимость делать check_hidden в шаблоне.

https://stackoverflow.com/search?q=%5Bdjango%5D+dynamic+choices

Даст вам много способов иметь динамический выбор. Многие из них выполняются в функции представления, устраняя необходимость в таком выражении if в шаблоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...