创建密码修改视图:
编辑子应用 user 下的 views.py 文件,在该文件最后添加如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
...
class PassWord(APIView): """ 修改用户密码视图,请求接受 POST, ipassword, password, password2 检验原始密码 ipassword 是否正确 正确的话校验新密码的正确性,返回OK """ def put(self, request): ipassword = request.data["ipassword"] password = request.data["password"] password2= request.data["password2"] user_id = request.data["user_id"]
user = User.objects.get(id=user_id)
if password != password2: raise Exception("两次密码输入不一致")
if len(password) > 20 or len(password) < 8: raise Exception("密码长度需要 8 ~ 20 位")
user.check_password(ipassword)
user.set_password(password) user.save()
return Response(status=status.HTTP_202_ACCEPTED)
|
添加密码修改访问路由
编辑子应用 user 下的 urls.py 文件,在该文件的 urlpatterns 列表中添加如下代码:
1 2 3 4 5 6 7 8 9 10
|
...
urlpatterns = [ ... path('password/', views.PassWord.as_view()), ]
...
|