请稍等 ...
×

采纳答案成功!

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

课程中提到的修改密码前端表单验证在哪呢

问题一:

js和HTML中都没有找到判断是否大于六位的部分,写在哪里呢?


问题二:

使用表单验证的clean方法后,输入修改密码长度不足不会报错,再次注释掉clean方法,使用原来view里面的方法却可以提示

form表单clean方法验证没有错误信息,但后台报错了

https://img1.sycdn.imooc.com/szimg/5feb49e6093cb53f18840306.jpg

这是Debug的内容,能够查询到errors里有错误信息,但没有显示出来

https://img1.sycdn.imooc.com//szimg/5feb4a8909670e1818980410.jpg

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

2回答

bobby 2020-12-31 11:47:33

https://img1.sycdn.imooc.com//szimg/5fed49cb09d295b405940421.jpg js的验证逻辑是在这个文件的最后面

0 回复 有任何疑惑可以回复我~
提问者 ahomm 2020-12-31 00:35:07

关于问题二的解答:

    老师在clean方法中使用的是self.cleaned_data['password1']

当字段层验证未通过时,返回的cleaned_data为空会导致出现上图错误找不到key 'password1'

前面的其他表单验证之所以没出错是用的dict.get()如果没有对应的key会返回None,所以不会报错;

想要正常验证密码长度可以在从cleaned_data取值前加上 if not self.errors:

或者修改为get()

0 回复 有任何疑惑可以回复我~
  • bobby #1
    你这里的回答是已经弄清这些问题了?
    回复 有任何疑惑可以回复我~ 2020-12-31 11:46:13
  • 提问者 ahomm 回复 bobby #2
    不知道理解的对不对,表单字段验证没通过为什么没有直接抛出异常而是继续执行了clean方法呢
    回复 有任何疑惑可以回复我~ 2020-12-31 12:36:10
  • bobby 回复 提问者 ahomm #3
    clean方法确实会在某一个字段没有通过的时候执行,因为有可能你需要自己改一下统一的验证逻辑
    回复 有任何疑惑可以回复我~ 2021-01-01 17:53:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信