code: def patch(self, *args, **kwargs):
          
          json_data = request.get_json() or {}
  
          qs = QSManager(request.args, self.schema)
          schema_kwargs = getattr(self, 'patch_schema_kwargs', dict())
          schema_kwargs.update({'partial': True})
  
          self.before_marshmallow(args, kwargs)
  
          schema = compute_schema(self.schema,
                                  schema_kwargs,
                                  qs,
                                  qs.include)
  
          try:
              data, errors = schema.load(json_data)
          except IncorrectTypeError as e:
              errors = e.messages
              for error in errors['errors']:
                  error['status'] = '409'
                  error['title'] = "Incorrect type"
              return errors, 409
          except ValidationError as e:
              errors = e.messages
              for message in errors['errors']:
                  message['status'] = '422'
                  message['title'] = "Validation error"
              return errors, 422
  
          if errors:
              for error in errors['errors']:
                  error['status'] = "422"
                  error['title'] = "Validation error"
              return errors, 422
  
          if 'id' not in json_data['data']:
              raise BadRequest('Missing id in "data" node',
                               source={'pointer': '/data/id'})
          if (str(json_data['data']['id']) != str(kwargs[getattr(self._data_layer, 'url_field', 'id')])):
              raise BadRequest('Value of id does not match the resource identifier in url',
                               source={'pointer': '/data/id'})
  
          self.before_patch(args, kwargs, data=data)
  
          obj = self.update_object(data, qs, kwargs)
  
          result = schema.dump(obj).data
  
          final_result = self.after_patch(result)
  
          return final_result
docs: Update an object