简体   繁体   English

在 django 的 rest 中删除用户帐户

[英]User account delete in django's rest

I want create view which can deactivation user's account.我想创建可以停用用户帐户的视图。 when i create view and send delete request i have error - > "detail": "You do not have permission to perform this action."当我创建视图并发送删除请求时出现错误 - > “详细信息”:“您无权执行此操作。” . . i have authenticated permissionn but i am login in my account.我已经验证了权限,但我正在登录我的帐户。 i also use APIview我也使用 APIview

this is code ->这是代码->

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"})

Since you seem to be using a purely view-based approach, APIView might do the trick instead of the generic class.由于您似乎使用的是纯粹基于视图的方法,因此 APIView 可能会代替通用的 class 来解决问题。 Additionally, setting the serializer class isn't necessary as well.此外,也不需要设置串行器 class。

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"})

Additionally as a general practice, it's better/safer to reserve user deletion capabilities only for admin/staff users.此外,作为一般做法,仅为管理员/员工用户保留用户删除功能会更好/更安全。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM