def profile(self, request, *args, **kwargs): user = self.get_object() profile = user.profile partial = request.method == 'patch' serializer = ProfileModelSerializer(profile, data=request.data, partial=partial) serializer.is_valid(raise_exception=True) serializer.save() data = UserModelSerializer(user).data return Response(data)
def profile(self, request, *args, **kwargs): """ Update profile data """ user = self.get_object() profile = user.profile partial = request.method == 'PATCH' serializer = ProfileModelSerializer(profile, data=request.data, partial=partial) serializer.is_valid(raise_exception=True) serializer.save() data = UserModelSerializer(user).data return Response(data, status=status.HTTP_200_OK)
def profile(self, request, *args, **kwargs): """Update profile data.""" user = request.user profile = user.profile partial = request.method == 'PATCH' serializer = ProfileModelSerializer( profile, data=request.data, ) serializer.is_valid(raise_exception=True) serializer.save() data = UserWithoutTeacherModelSerializer(user).data return Response(data)
def profile( self, request, *args, **kwargs ): # Esta vista solo se permitira para el dueño de la cuenta.Esta vista tendra un path que sera despues la ruta de actualizar user <path update user>/profile/ para que actualice algo especifico """Actualiza datos de perfil""" user = self.get_object( ) # Devuelve el usuario que se coloca con su username en la url profile = user.profile partial = request.method == 'PATH' serializer = ProfileModelSerializer( profile, data=request. data, # Son los datos recibidos desde el request desde el body partial= partial # Este campo permite saber al serializer que sera parcial. Por defecto el serializer pensara que una actualizacion total. Para ambas peticiones no nos devolvera error si no mandamos nada, por que ningun dato es requerido ) serializer.is_valid(raise_exception=True) serializer.save() data = UserModelSerializer( user ).data # Usamos UserModelSerializer por que el serializer tendra un campo llamado profile return Response(data)