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

标签 python flask jinja2 flask-wtforms

我正在尝试使用 jinja2 和 Flask-wtf 在 Flask 应用程序中渲染表单,但无法弄清楚如何处理为 onclick 添加生成的参数,该参数包含一个属性作为其参数的一部分。

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

这是一个简短的示例:

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

这是一个完整的示例:

<form id="reg_form" class="form text-left" method="post" role="form">
{{ form.csrf_token }}
{% for entry_field in form %}
{% if entry_field != form.csrf_token %}
<div class="form-group row">
    <!--form label-->
    <a href="#" onclick="showNotes('{{entry_field.name}}')">
    {{ entry_field.label(class="col-sm-3 col-form-label") }}
    </a>
    <!--form field-->
    <div class="col-sm-9">
        {{ entry_field(class_="form-control", onclick="showNotes('{{entry_field.name}}')") }}
        {% for error in entry_field.errors %}<span style="color: red;">{{ error }}</span>{% endfor %}
    </div>
</div>
{% endif %}
{% endfor %}
<!--form submit-->
<div class="form-group row">
    <div class="col-sm-9 col-sm-offset-3">
        <input type="submit" class="btn btn-lg btn-success" value="Submit">
    </div>
</div>
</form>

非常感谢任何帮助!

最佳答案

您可以使用字符串格式来构建您想要的字符串:

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

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

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

关于python - 如何在 Jinja2 的方法调用中引用对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49134141/

相关文章:

python - 如何让 Windows 记住使用 tkinter filedialog 使用的最后一个目录?

python - (py)zmq/PUB : Is it possible to call connect() then send() immediately and do not lose the message?

python - 我在我的代码中使用了 Jinja2 "recursive"标签,但是我怎样才能得到当前循环的深度呢?

python - Jinja2 的单独 "includes"和 "templates"目录

python - 如何在 jinja2/flask 中获取当前 URL(request.url 不起作用)

python - Pandas 中具有相同名称的多个列

python - 用于 URL 替换的 pdf-redactor 语法

amazon-web-services - 使用 Docker on AWS 进行 POST 的 Flask 应用程序中的奇怪行为

ssl - 使用 SSL 的 Elastic Beanstalk 上的 Flask 给出 403 Forbidden

python - 在 python 中对请求执行异常时出错