Троичный шаблон Django для класса

#python-3.x #bootstrap-4 #django-templates #ternary-operator

#python-3.x #bootstrap-4 #django-шаблоны #ternary-operator

Вопрос:

Я хочу свернуть аккордеон bootstrap4 на основе условия.

Этот код работает, но кажется глупым.

 {% if missing_data %}
        <div id="collapseExternal" class="collapse show" aria-labelledby="externalHeading" data-parent="#accordionExternal">
{% else %}
        <div id="collapseExternal" class="collapse hide" aria-labelledby="externalHeading" data-parent="#accordionExternal">
{% endif %}
 

Основываясь на исследованиях, я попытался

 <div id="collapseExternal" class="{% if missing_data == True %}collapse show{% else %}collapse hide{% endif %}" aria-labelledby="externalHeading" data-parent="#accordionExternal">
 

А также

 <div id="collapseExternal" {% if missing_data %} class="collapse show" {% else %} class="collapse hide" {% endif %} aria-labelledby="externalHeading" data-parent="#accordionExternal">
 

но ни то, ни другое не работает. Они просто остаются скрытыми и не открываются.

Желаемое поведение: если условие истинно, покажите, что класс свернут, если false, have hidden .

Ответ №1:

Наконец-то нашел ответ еще где

 <div id="collapseExternal" class='collapse {{missing_data|yesno:"show,hide"}}' aria-labelledby="externalHeading" data-parent="#accordionExternal">
 

Однако я не знаю, что это на самом деле или называется…