在 django 的其余部分删除用户帐户

kok*_*aaa 6 python django rest django-views django-rest-framework

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

这是代码->

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"})
Run Code Online (Sandbox Code Playgroud)

小智 4

由于您似乎使用的是纯粹基于视图的方法,因此 APIView 可能会代替泛型类来实现这一点。此外,也不需要设置序列化器类。

from rest_framework.views import APIView
Run Code Online (Sandbox Code Playgroud)
class DeleteAccount(APIView):
    permission_classes = [permissions.IsAuthenticated]

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

        return Response({"result":"user delete"})
Run Code Online (Sandbox Code Playgroud)

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