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

如何在HTML属性的引号内使用Jinja变量?

解决Jinja模板中表单字段索引替换问题

你不需要手动转义HTML属性的引号,Jinja支持直接在双引号内插入变量值。问题出在你没有正确获取循环的索引值,以下是两种可行的解决方式:

方式一:使用Jinja内置的loop变量(推荐)

利用loop.index0(从0开始计数)或loop.index(从1开始计数)获取循环索引,嵌套循环中外层索引通过loop.parentloop调用:

{% for event in events %}
    {% for entry in event.entries %}
        <td>
            <input 
                id="events-{{ loop.parentloop.index0 }}-entries-{{ loop.index0 }}" 
                name="events-{{ loop.parentloop.index0 }}-entries" 
                type="checkbox" 
                value="1">
        </td>
    {% endfor %}
{% endfor %}
  • loop.index0:当前循环的索引(从0开始),适合后端数组/列表的索引匹配
  • loop.parentloop.index0:获取外层循环的索引,用于区分不同的event项

方式二:手动定义索引变量

如果需要自定义索引起始值或逻辑,可以通过set标签手动维护索引:

{% set event_index = 0 %}
{% for event in events %}
    {% set entry_index = 0 %}
    {% for entry in event.entries %}
        <td>
            <input 
                id="events-{{ event_index }}-entries-{{ entry_index }}" 
                name="events-{{ event_index }}-entries" 
                type="checkbox" 
                value="1">
        </td>
        {% set entry_index = entry_index + 1 %}
    {% endfor %}
    {% set event_index = event_index + 1 %}
{% endfor %}

以上两种方式生成的HTML中,表单字段的id和name属性都会正确包含索引值,无需额外转义操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:55:27