Damiisdandy
Damiisdandy

Reputation: 397

(Django Rest Framework) How Do I Update The User Model

I am trying to update the user model (with Django Rest Framework's patch method in APIView) but i keep getting the error.

`NotImplementedError: update() must be implemented.`

Here is my Serializer:

class UpdateSerializer(serializers.Serializer):
class Meta:
    model = User
    fields = ('email', 'first_name', 'last_name',
              'phone')

Here is my View:

class UpdateUser(APIView):
    permission_classes = [
        permissions.IsAuthenticated,
    ]

    def patch(self, request):
        """
        `Update User`
        """
        user = self.request.user
        serializer = UpdateSerializer(user, data=request.data, partial=True)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

I created a custom user model, my serializer for registering users works fine but this update serializer is giving that error

Upvotes: 1

Views: 1734

Answers (1)

JPG
JPG

Reputation: 88499

Use serializers.ModelSerializer instead of serializers.Serializer

class UpdateSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('email', 'first_name', 'last_name', 'phone')

Upvotes: 5

Related Questions