有没有办法在flask wtforms中创建自定义Field / CancelField?

时间:2017-06-30 06:03:26

标签: python flask flask-wtforms

我在下面有一个简单的wt-form类。除了提交按钮,我还需要一个取消按钮,让用户返回主页。有没有办法在课堂中加入这个?

我尝试编写一个函数并将其传递给SubmitField(标记为取消),但它似乎无法正常工作。这是我的代码:

P.s:我正在使用wtf.quick_form(表单)处理表单,如果这与此问题有任何关联

class RegistrationForm(FlaskForm):
username = StringField('Username', validators=[DataRequired(), Length(3, 16, message='3 to 6 Characters'), user_exists])
email = StringField('Email', validators=[DataRequired(), Email(), email_exists])
password = PasswordField('Password', validators=[DataRequired(), Length(5), EqualTo('confirm', message='Password Must Match')])
confirm = PasswordField('Confirm Password', validators=[DataRequired()])
submit = SubmitField('Submit')
# cancel = SubmitField('Cancel', validators=([go_back])

1 个答案:

答案 0 :(得分:0)

您可以在视图中处理它。当用户按下“提交”按钮时,form.submit.data设置为True。同样,当按下“取消”时,form.cancel.data设置为True

这是一个最简单的例子来说明这一点:

forms.py

class RegistrationForm(FlaskForm):
    # ...
    submit = SubmitField('Submit')
    cancel = SubmitField('Cancel')

views.py

@app.route('/register', methods=['GET', 'POST'])
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        # The user pressed the "Submit" button
        if form.submit.data:
            # ...
        # The user pressed the "Cancel" button
        else:
            return redirect(url_for('homepage'))
    return render_template('register.html', form=form)