views.py

Я работаю над моделью User, поэтому мне нужна срочная помощь в том, как удалить несколько пользователей, получив id пользователей в представлениях. Я пытался сделать это в представлениях, но не работает:

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()

Попробуйте передать список идентификаторов в представление и отфильтровать объекты, имеющие эти идентификаторы, а затем удалить их.

Допустим, вы хотите удалить 3 пользователей, имеющих ID 1,2,3

Это будет работать так

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'})
        
Вернуться на верх