flask-bootstrap quick_form缺少“提交”按钮

Tri*_*cki 2 flask flask-wtforms flask-bootstrap

尝试使用flask-bootstrap quick_form。

HTML模板my-form.j2:

{% import "bootstrap/wtf.html" as wtf %}
{% extends "layout.j2" %}

{% block content %}

<h1>My form</h1>
{{ wtf.quick_form(form) }}

{% endblock content %}
Run Code Online (Sandbox Code Playgroud)

表格类别:

class MyForm(FlaskForm):
    """A WTForm for configuring vehicle information"""
    field1 = StringField('First field', [wtforms.validators.required()])
    field2 = StringField('Second field', [wtforms.validators.required()])
    field3 = StringField('Third field', [wtforms.validators.required()])
Run Code Online (Sandbox Code Playgroud)

表单处理程序:

@app.route('/myform', methods=('GET', 'POST'))
def my_form():
    form = MyForm()
    if form.validate_on_submit():
        myData = form.data
        return redirect("/")
    return render_template("my-form.j2", form=form)
Run Code Online (Sandbox Code Playgroud)

不幸的是,即使添加{{ form.submit }}到表中,我也看不到呈现“提交”按钮 。有任何想法吗?

maj*_*aje 6

@atwalsh的答案工作正常,但您也可以将“提交”按钮放在班级中,然后在模板中调用它:

class MyForm(FlaskForm):
    field1 = StringField('First field', [wtforms.validators.required()])
    field2 = StringField('Second field', [wtforms.validators.required()])
    field3 = StringField('Third field', [wtforms.validators.required()])
--> submit_button = SubmitField('Submit Form')
Run Code Online (Sandbox Code Playgroud)

然后放入您的模板:

{{ wtf.quick_form(form, button_map={'submit_button': 'primary'}) }}
                            ^            ^
Run Code Online (Sandbox Code Playgroud)

  • 这是一种更完善的方法。 (2认同)