Я унаследовал проект django 2.0 на работе и пытаюсь внести то, что должно быть простым изменением в условное в шаблонном html-файле, но не могу заставить его добраться до новой ветви.Я подозреваю синтаксическую проблему, но не могу ее найти.
У меня есть несколько строк, некоторые из которых отклонены, некоторые в ожидании одобрения, некоторые приняты.Этот код предназначен для отображения их соответствующим образом:
<td class="vert-align blue-madison block">
{% if row.is_rejected %}
<span class="label label-sm label-danger">
Rejected
</span>
{% elif not row.is_active %}
<span class="label label-sm label-warning">
Pending review
</span>
{% elif row.id|row_is_pending_deletion %}
<span class="label label-sm label-danger">
Pending deletion
</span>
{% else %}
<span class="label label-sm label-success">
Active
</span>
{% endif %}
</td>
четыре ветви;Отклонено, Ожидает проверки, Ожидает удаления и Активен.
Активно и Ожидает проверки работают нормально.Я не проверял в ожидании удаления.Отклонено - это новая ветка, и я не могу заставить ее отображаться так, как показано выше.
Я знаю, что самая последняя строка отклонена True, поскольку я проверил ее в оболочке django
>>> row.is_rejected
True
И я знаю, что это та же строка, потому что я посмотрел, чтобы убедиться, что данныев строке совпадения между оболочкой и пользовательским интерфейсом.
Если я изменю приведенный выше код на «{%, если не row.is_rejected%}», то все строки отображаются как отклоненные с соответствующей красной меткой,так что общий синтаксис выглядит нормально.
Я проверил dbshell для строки, и он показывает is_rejected значение "t", возможно ли, что код выше не распознает "t" как True?Я попытался протестировать и row.is_rejected == t, и "t". В первом случае все строки возвращались отклоненными, а в последующем я получаю тот же результат, что и мой обычный код выше.