Reputation: 397
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
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