Флешка-бутстрап quick_form отсутствует кнопка "Отправить"

Попытка использовать 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 }} к моему столу. Есть идеи?

2 ответа

Решение

Я считаю, что вы можете добавить поле ввода сразу после {{ 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 %}

Ответ @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'}) }}
                            ^            ^
Другие вопросы по тегам