如何在Jinja2中的方法调用中引用对象属性?

时间:2018-03-06 15:14:46

标签: python flask jinja2 flask-wtforms

我正在尝试使用jinja2和flask-wtf在一个烧瓶应用程序中呈现一个表单,但是我很难弄清楚如何处理为onclick添加一个生成的参数,其中包含一个属性作为其参数的一部分。

你可以在表单标签部分看到我有onclick设置来调用javascript函数并传递当前循环对象的name属性,这可以按预期工作。但是,当我在表单字段部分时,我需要将onclick作为关键字参数传递给循环对象,并且需要使我的参数的参数成为对象名称属性。这不起作用。

这是一个缩短的例子:

mainClassName ='projName.exec.exec1Main'
applicationName = 'script1'

以下是一个完整的例子:

<form class="form">
    {% for entry_field in form %}
        {{ entry_field.label() }}
        {{ entry_field(onclick="jsFunction({{entry_field.name}})}}
    {% endfor %}
</form>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用字符串格式来构建所需的字符串:

{{ "jsFunction(%s)" | format(entry_field.name) }}

您可以将该字符串用作entry_field()的参数:

{{ entry_field(onclick=("jsFunction(%s)" | format(entry_field.name)) }}