使用Jinja2时的ToolTips错误
我在使用Jinja2的时候遇到了一个问题,想在文本输入框上加提示框,但出现了“函数调用表达式的语法无效”的错误。
这是我的代码:
{{ Wformulario.WCPO_Nro_Part(class="form-control input-sm inteiro tooltips", data-container="body", data-placement="bottom", data-original-title="Informe o Numero de Participantes: 0 a 99", tabindex="3") }}
这个代码运行得很好(我只是去掉了data-container、data-placement等属性):
{{ Wformulario.WCPO_Nro_Part(class="form-control input-sm inteiro tooltips", tabindex="3") }}
这个代码也运行得很好:
<input class="form-control input-sm inteiro tooltips" data-container="body" data-placement="bottom" data-original-title="Informe o Numero de Participantes: 0 a 99"> </input>
我不知道我哪里出错了。
1 个回答
0
当你用关键字参数调用一个函数时,关键字必须是有效的标识符;这些标识符不能使用 -
,因为那是减法运算符。比如 data-container
就不是一个有效的标识符。
我假设你在这里使用的是 WTForms 来生成输入框。在这种情况下,你可以把 data-
替换成 data_
,这样 WTForms 就会正确地用连字符来渲染这些属性,而不是下划线:
{{ Wformulario.WCPO_Nro_Part(class="form-control input-sm inteiro tooltips",
data_container="body", data_placement="bottom",
data_original_title="Informe o Numero de Participantes: 0 a 99",
tabindex="3") }}
注意,只有第一个 _
被替换,所以这会生成:
<input class="form-control input-sm inteiro tooltips"
data-container="body" data-placement="bottom"
data-original_title="Informe o Numero de Participantes: 0 a 99"> </input>
注意 original_title
中的 _
。
如果想解决这个问题,你需要把信息放在一个字典里,然后使用 **
(双星号)来调用:
{{ Wformulario.WCPO_Nro_Part(class="form-control input-sm inteiro tooltips",
data_container="body", data_placement="bottom",
tabindex="3",
**{'data-original-title': "Informe o Numero de Participantes: 0 a 99"}) }}
现在 data-original-title
参数不是作为关键字参数传入,而是作为字典的一部分传入。