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

Jinja模板移除多余空白(无HTML)的技术实现问询

问题描述

我编写了如下Jinja模板:

ФИО: {{ fullname }}

{% for task, fact_hours, plan_hours in week_results %}
    {%- if fact_hours != 0 and plan_hours != 0 -%}
Задача №:{{ task.id }} "{{ task.name }}"
    Фактическое время: {{ fact_hours }}
    Планируемое время: {{ plan_hours }}
        {%- if fact_hours <= plan_hours %}
    Соответствует графику
        {%- else %}
    НЕ соответствует графику
        {%- endif +%}

    {% endif %}
{%- endfor %}

当前渲染结果存在两个问题:

  1. 循环迭代的任务行前有多余制表符
  2. 当{%- if fact_hours != 0 and plan_hours != 0 -%}条件不满足时会输出空行

希望达到的目标格式:

ФИО: Оксана Владимировна Абракадабровна

Задача №:511 "Доработки PlanFix"
    Фактическое время: 3.0
    Планируемое время: 3.0
    Соответствует графику

Задача №:8710 "Аналитика поступлений и затрат"
    Фактическое время: 0.8
    Планируемое время: 2.0
    Соответствует графику

Задача №:8753 "0. Сопровождение клиента"
    Фактическое время: 2.2
    Планируемое время: 2.5
    Соответствует графику

要求:移除循环迭代首行前的制表符,条件不满足时不输出任何内容,且不使用HTML标签。

解决方案

核心是通过**Jinja的空白控制标记-**精准控制模板中的空白,同时调整缩进结构,避免多余空格和空行:

修改后的模板如下:

ФИО: {{ fullname }}

{%- for task, fact_hours, plan_hours in week_results %}
{%- if fact_hours != 0 and plan_hours != 0 %}
Задача №:{{ task.id }} "{{ task.name }}"
    Фактическое время: {{ fact_hours }}
    Планируемое время: {{ plan_hours }}
    {%- if fact_hours <= plan_hours %}
    Соответствует графику
    {%- else %}
    НЕ соответствует графику
    {%- endif %}

{%- endif %}
{%- endfor %}

关键调整点:

  • 循环标签的空白控制:在{%- for ... %}开头加上-,移除循环前的多余换行和空格,避免条件不满足时产生空行
  • 条件标签的空白控制:{%- if fact_hours != 0 ... %}开头加-,同时去掉原条件标签末尾的-,避免吃掉后续任务行的换行
  • 缩进结构调整:把任务行Задача №:...顶格写,内部的时间行保持缩进,确保输出格式符合要求
  • 嵌套条件的空白控制:将嵌套的{%- if ... %}开头加-,并调整缩进,保证状态行的格式一致,同时避免多余空格

这样修改后,既不会在条件不满足时输出空行,也能保证任务行没有多余前置制表符,完全匹配目标格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:22:49