multiple deletion in django rest framework

Viewed 31

I am working upon User model. How to delete multiple users by getting id of users in views? I have tried with this in views but does'nt works:

class UserDeleteView(APIView):

permission_classes = (IsAdminUser,)

def get_object(self,id):
    try:
        return User.objects.get(id=id)
    
    except User.DoesNotExist:
        raise Http404
    
def delete(self,request,id,format=None):
    userData=self.get_object(id=id)
    if userData:
        for usr in userData:
            usr.delete()
1 Answers

Try Passing the list of IDs to the view and filtering the objects having those IDs and then deleting them.

Say you want to delete 3 users, having IDs 1,2,3

This will work like this

class UserDeleteView(APIView):
    permission_classes = (permissions.IsAdminUser,)

    def post(self, request):
        user_ids = request.data.get('user_ids') # [1,2,3] List of ID's
        users = User.objects.filter(id__in=user_ids)
        users.delete()
        return Response({'message': 'Users deleted successfully'})
        
Related