首页 > 解决方案 > 在 django's rest 中删除用户帐户

问题描述

我想创建可以停用用户帐户的视图。当我创建视图并发送删除请求时出现错误 - > “详细信息”:“您无权执行此操作。” . 我已经验证了权限,但我正在登录我的帐户。我也使用 APIview

这是代码->

class DeleteAccount(generics.RetrieveUpdateDestroyAPIView):
    serializer_class = UserSerializer
    permission_classes = [permissions.IsAuthenticated]


    def delete(self, request, *args, **kwargs):
        user=self.request.user
        user.delete()

        return Response({"result":"user delete"})

标签: pythondjangorestdjango-rest-frameworkdjango-views

解决方案


由于您似乎使用的是纯粹基于视图的方法,因此 APIView 可能会代替泛型类来解决问题。此外,也不需要设置序列化程序类。

from rest_framework.views import APIView
class DeleteAccount(APIView):
    permission_classes = [permissions.IsAuthenticated]

    def delete(self, request, *args, **kwargs):
        user=self.request.user
        user.delete()

        return Response({"result":"user delete"})

此外,作为一般做法,仅为管理员/员工用户保留用户删除功能会更好/更安全。


推荐阅读