簡體   English   中英

如何在Jinja2的方法調用中引用對象屬性?

[英]How do I reference an object property in a method call in Jinja2?

我正在嘗試使用jinja2和flask-wtf在flask應用程序中呈現表單,但是在弄清楚如何處理為包含屬性的onclick的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)) }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM