2017-08-30 36 views
1

嘗試使用flask-bootstrap quick_form。flask-bootstrap quick_form缺失提交按鈕

HTML模板我-form.j2:

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

{% block content %} 

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

{% endblock content %} 

Form類:

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 }}添加到我的表中。 任何想法?

回答

1

我相信你可以{{ wtf.quick_form(form) }}後直接添加輸入字段,並把兩者的這些HTML表單裏面:

<input class="btn btn-primary" type="submit" value="Login"> 

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

{% block content %} 

<h1>My form</h1> 
<form method="POST" action="/"> 
    {{ wtf.quick_form(form) }} 
    <input class="btn btn-primary" type="submit" value="Login"> 
</form> 
{% endblock content %} 
+0

謝謝!似乎工作。 – TrickiDicki

0

的@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'}) }} 
          ^  ^