You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jinja2模板语法错误排查:WeasyPrint生成PDF遇token异常

解决Jinja2 TemplateSyntaxError:expected token '=', got '['

错误原因

你的模板中{% with %}语句的语法不符合Jinja2规范。Jinja2要求with语句必须以变量名 = 表达式的形式定义变量,而不是将表达式直接放在as关键字前。错误出在这一行:

{% with item['Questionario__QuestionarioDescricao'] as previous_questionario %}

修正方案

将with语句调整为正确的赋值格式:

{% with previous_questionario = item['Questionario__QuestionarioDescricao'] %}
    <!-- Isso vai ajudar a saber se a próxima iteração é de um novo questionário -->
{% endwith %}

完整修正后的模板代码

<p class="font-bold">Apresentar a avaliação detalhada processo de negócio, trazendo todos os questionários, suas perguntas e respostas.</p>
{% for item in data['quiz'] %}
    {% if forloop.first or item['Questionario__QuestionarioDescricao'] != previous_questionario %}
        {% if not forloop.first %}
            </div>
        {% endif %}
        <h3 class="quiz-title">Questionário: {{ item['Questionario__QuestionarioDescricao'] }}</h3>
    {% endif %}
    <p class="font-bold">Pergunta: {{ item['QuestionarioItem__QuestionarioItemDescricao'] }}</p>
    <p>Resposta: {{ item['QuestionarioRespostaTexto'] }} </p>
    {% if item['QuestionarioRespostaSimNao'] == "S" %}
        <p>Resposta (Sim/Não): Sim</p>
    {% elif item['QuestionarioRespostaSimNao'] == "N" %}
        <p>Resposta (Sim/Não): Não</p>
    {% else %}
        <p>Resposta (Sim/Não): {{ item['QuestionarioRespostaSimNao'] }}</p> <!-- Caso não seja S ou N -->
    {% endif %}
    {% with previous_questionario = item['Questionario__QuestionarioDescricao'] %}
        <!-- Isso vai ajudar a saber se a próxima iteração é de um novo questionário -->
    {% endwith %}
{% endfor %}

补充说明

修正后,previous_questionario变量会在每次循环中被赋值为当前item的问卷描述,后续循环可通过对比该变量判断是否切换到新问卷,完全匹配你原本的逻辑需求。

内容的提问来源于stack exchange,提问作者devpedroh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:54:51