from django.contrib.auth.models import User from rest_framework.generics import RetrieveUpdateAPIView, UpdateAPIView from rest_framework.permissions import IsAuthenticated from users.api.v1.serializers import UserSerializer, UpdatePasswordSerializer class RetrieveUpdateMe(RetrieveUpdateAPIView): """ get: Return user info put: Update user info """ serializer_class = UserSerializer def get_object(self): return self.request.user class ChangePassword(UpdateAPIView): """ put: Update user's password """ serializer_class = UpdatePasswordSerializer permission_classes = (IsAuthenticated,) queryset = User.objects.all() def get_object(self): return self.request.user retrieve_update_me = RetrieveUpdateMe.as_view() change_password = ChangePassword.as_view()