form验证的问题
来源:5-3 可以接受定义的复杂,但不能接受调用的复杂

a909802
2018-09-10
老师,你定义了validate_account这个验证重复的函数,为什么没有调用啊,也有可能是我没听仔细,还有我这里如果邮箱没有重复但是nickname重复了会报一个很长的错sqlalchemy.exc.IntegrityError: (cymysql.err.IntegrityError) (1062, “Duplicate entry ‘dm’ for key ‘nickname’”) [SQL: ‘INSERT INTO user (create_time, status, email, nickname, auth, password) VALUES (%s, %s, %s, %s, %s, %s)’] [parameters: (1536562861, 1, ‘888@qq.com’, ‘dm’, 1, ‘pbkdf2:sha256:50000hCHkAIjThCHkAIjThCHkAIjTcfc617f5e32481fcf417b87cc6e8f78c743549a0699d0e022814d5870d1da173’)] (Background on this error at: http://sqlalche.me/e/gkpj) // Werkzeug Debugger
2回答
-
a909802
提问者
2018-09-10
应该在UserEmailForm下添加一个验证nickname重复的方法,仿照着validate_account
写就可以了,因为在定义模型的时候nickname是不可以重复的,但是form里没有验证,所以与数据库冲突了def validate_nickname(self, field):
if User.query.filter_by(nickname=field.data).first():
raise ValidationError('昵称已存在')00 -
a909802
提问者
2018-09-10
额,我找到问题的原因了ValidationError('电子邮件已被注册')这样写就好了,是因为之前没有传参
00
相似问题