bloco aninhado e loop for em um bloco de modelo Jinja
Aug 23 2020
Tentando usar bloco aninhado e loop for em uma configuração de bloco de modelo Jinja.
{% block main %}
<table>
<tr>
<td>user id</td>
<td>user sec level</td>
</tr>
{% block main_nested_b scoped %}
{%
for user in list_users:
t_id_user = str(user[0][0])
t_sec_level = str(user[2][0])
%}
<tr>
<td>
<a href='/usersEdit?id_user={{ t_id_user }}' class='onwhite'>edit</a>
</td>
</tr>
{% endfor %}
{% endblock main_nested_b %}
{% endblock main %}
</table>
Mensagem de erro:
jinja2.exceptions.TemplateSyntaxError: expected token 'end of statement block', got 't_id_user'
Socorro?
Respostas
2 MartijnPieters Aug 23 2020 at 13:54
Você não pode tratar a sintaxe Jinja como sintaxe Python. Não é a mesma coisa. Mantenha sua fortag separada das tags de atribuição ( set) :
{% for user in list_users %}
{% set t_id_user = user[0][0] %}
{% set t_sec_level = user[2][0] %}
Observe que não há nem mesmo um :no final da for ... in ...sintaxe! Além disso, você não precisa chamar str()aqui, deixe isso para Jinja converter em strings para você; em qualquer lugar que você usar {{ t_id_user }}ou {{ t_sec_level }}o valor será convertido em uma string de qualquer maneira.
Aqui está o modelo completo:
<table>
{% block main %}
{% block main_nested_b scoped %}
{% for user in list_users %}
{% set t_id_user = user[0][0] %}
{% set t_sec_level = user[2][0] %}
<tr>
<td>
<a href='/usersEdit?id_user={{ t_id_user }}' class='onwhite'>edit</a>
</td>
</tr>
{% endfor %}
{% endblock main_nested_b %}
{% endblock main %}
</table>
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas