【问题标题】:Error Using ToolTips with Jinja2在 Jinja2 中使用工具提示时出错
【发布时间】:2014-07-23 19:49:57
【问题描述】:

当我尝试使用带有文本输入字段的工具提示时,我遇到了 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") }}

这很好用(我只是删除了数据容器、数据放置...):

{{ 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>

我不知道我做错了什么。

【问题讨论】:

    标签: python flask jinja2


    【解决方案1】:

    使用关键字参数调用函数时,只能使用有效的关键字标识符;这些标识符不能使用-,因为那是减法运算符。 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") }}
    

    请注意,只有 first _ 被替换,因此创建:

    <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 中的_

    要解决这个问题,您必须改为在字典中传递信息,并改用 ** (double-splat) 调用:

    {{ 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 参数不是作为关键字参数传入,而是作为字典的一部分传入。

    【讨论】:

    • 当我使用:{{ 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"}) }} 它有效,但 WTF 没有替换 - 用 _ 所以工具提示出现在顶部。然后我尝试了: {{ Wformulario.WCPO_Nro_Part(class="form-control input-sm inteiro tooltips", tabindex="3", **{'data-original-title': "Informe o Numero de Participantes: 0 a 99 ", 'data-placement': "bottom", 'data-container': "body"}) }} 效果很好。
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多