ValidationError显示问题

来源:7-1 .管理员登录

慕无忌1371140

2017-08-10

form.py中应用Raise ValidationError(‘账号不存在!’)显示的位置是输入框下方,view.py中利用flash函数实现提示密码错误,但是显示的位置是登录栏中央,为了保持统一性,我对view.py中的login函数做了如下修改:
http://szimg.mukewang.com/598ba0100001dda906850311.jpg

但此时网页并没有跟‘用户名不存在’一样提示消息而是报错

http://szimg.mukewang.com/598ba0650001bbf107660853.jpg

请问老师这是为什么?

写回答

1回答

rustgopy

2017-08-10

同学,你好,因为你直接在视图中抛出异常所以显示如上信息,这里需要通过表单验证字段函数直接抛出字段的错误,可以这样定义:

def validate_pwd(self, field):
    from app.models import Admin
    pwd = field.data
    name = self.account.data
    admin = Admin.query.filter_by(name=name).first()
    if not admin.check_pwd(pwd):
        raise ValidationError("密码错误!")


0
2
rustgopy
回复
慕无忌1371140
加油,亲!
2017-08-10
共2条回复

Python Flask 构建微电影视频网站

Python 最好用轻量级框架,让你轻松胜任 Python Web 工程师

683 学习 · 663 问题

查看课程