Flask wtform错误而不是字段错误

时间:2017-03-20 00:42:45

标签: python flask flask-wtforms

我了解如何验证每个字段并在需要时显示每个错误。但是如何显示表单错误。

我的意思是用户可以输入有效信息,但表格整体可能有误。

实施例: 表格用户名和密码。每个都有一个验证器。如果登录失败(帐户不存在或密码不正确),如何显示错误?

我尝试引发ValidationError ......但这只会引发错误。

def login():
    form = LoginForm(request.form)
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data

        if login(username, password):
            return redirect(url_for('dashboard'))
        else:
            raise ValidationError('Invalid login')

    return render_template('login.html', form=form)

1 个答案:

答案 0 :(得分:0)

将您的raise ValidationError('Invalid login')更改为flash('Invalid login')
并记得from flask import flash
然后在“login.html”中添加一个字段以显示此消息

{% for message in get_flashed_messages() %}
<div class="alert alert-warning">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    {{ message }}
</div>
{% endfor %}