flask-bootstrap quick_form 缺少提交按钮

标签 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 %}

表单类:

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()])

表单处理程序:

@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)

不幸的是,我没有看到呈现的提交按钮,即使我添加 {{ form.submit }} 到我的表。 有什么想法吗?

最佳答案

@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')

然后放入你的模板:

{{ wtf.quick_form(form, button_map={'submit_button': 'primary'}) }}
                            ^            ^

编辑: 您还需要导入 SubmitField 方法:

from wtforms import SubmitField
                                    

关于flask-bootstrap quick_form 缺少提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45951346/

相关文章:

python - Flask-Dance错误: Scope has changed

python - 在 Flask 重定向中测试 URL 参数

python - AWS python Flask EB .ebextensions .conf 文件不工作

python - 从 Flask POST 中传递的不仅仅是结果页面

python - 提交 Flask WTForms 时,如何将字段留空而不从数据库表中删除这些值?

python - Flask Wtforms FileField 对象没有读取属性

javascript - Flask 和 ReactJS 文件上传不起作用

flask - Bootstrap 模板自动生成?

html - 在 div 中自动拟合 Markdown 图像