Я передаю два симметричных словаря шаблону jinja2 для рендеринга. Эти два словаря установлены и требуются. Я хочу сравнить значения в установленном и требуемом для того, чтобы они были той же самой версией. Номера версий хранятся в виде строк. Если версии не равны, я хочу выделить эту строку в моей таблице.Сравнение симметричных словарей в шаблоне Jinja2
Значения печатаются правильно, но сравнение всегда терпит неудачу.
<table border="1">
<tr>
<td>Package</td>
<td>Version Required</td>
<td>Version Installed</td>
</tr>
{% for key, value in required.items() %}
{% if installed[key] == required[key] %}
<tr>
<td>{{key}}</td>
<td>{{value}}</td>
<td>{{installed[key]}}</td>
</tr>
{% else %}
<tr bgcolor="#ff0000">
<td>{{key}}</td>
<td>{{value}}</td>
<td>{{installed[key]}}</td>
</tr>
{% endif %}
{% endfor %}
</table>
Молодцы. Эта небольшая деталь, которая вызвала вашу проблему, намного проще разрешить в чистом Python (в идеале написании небольшого набора тестов или добавлении некоторого 'assert' в код), то в любом виде шаблона. Вот почему практическое сохранение большей части логики в Python и сохранение шаблонов только для рендеринга. –