У меня проблема с переменной областью в Jinja, которая не выравнивает таблицу.Я пытаюсь преобразовать текущий шаблон, который написан на Гепарде, в Джинджу, но по какой-то причине этот блок логики не переводит, и на выходе выводит питон еще больше.
Оригинальный код гепарда
#set $sname = ""
#for $serv in $proc:
#if $serv.id == $v[8]:
<td> $serv.shortname </td>
#set $sname = $serv.shortname
#end if
#end for
#if $sname == "":
<td><span style="color:#ff0000">Server not found</span></td>
#end if
Таким образом, желаемым результатом вышеприведенного кода является циклический перебор некоторых объектов, сопоставление идентификаторов с текущим объектом строки и обновление значения.затем проверьте, является ли значение все еще нулевым, и напечатайте сервер, вместо этого найденный.
Код Jinja, который не работает
{% set sname = "" %}
{{ v[8] }}
{% for serv in proc %}
{% if serv.id == v[8] %}
<td> {{ serv.shortname }} </td>
{% set sname = serv.shortname %}
{% endif %}
{% endfor %}
{% if sname == "" %}
<td><span style="color:#ff0000">Server not found</span></td>
{% endif %}
Этот код вместо этого, если он правильно совпадает с идентификаторами, он печатает оба столбца, поскольку внецикла имя sname по-прежнему установлено на "".Я попытался сделать сравнение внутри цикла, но он напечатал что-то вроде
Сервер не найден |Имя_сервера |Сервер не найден