请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

form验证的问题

老师,你定义了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

正在回答 回答被采纳积分+3

2回答

提问者 a909802 2018-09-10 15:14:33

应该在UserEmailForm下添加一个验证nickname重复的方法,仿照着validate_account
写就可以了,因为在定义模型的时候nickname是不可以重复的,但是form里没有验证,所以与数据库冲突了

def validate_nickname(self, field):
   if User.query.filter_by(nickname=field.data).first():
       raise ValidationError('昵称已存在')

0 回复 有任何疑惑可以回复我~
提问者 a909802 2018-09-10 15:08:18

额,我找到问题的原因了ValidationError('电子邮件已被注册')这样写就好了,是因为之前没有传参

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信