code: def update_object_with_data(content, record):
      
  
      # ensure we have a full content object
      content = get_object(content)
  
      # get the proper data manager
      dm = IDataManager(content)
  
      if dm is None:
          fail(400, "Update for this object is not allowed")
  
      # Iterate through record items
      for k, v in record.items():
          try:
              success = dm.set(k, v, **record)
          except Unauthorized:
              fail(401, "Not allowed to set the field '%s'" % k)
          except ValueError, exc:
              fail(400, str(exc))
  
          if not success:
              logger.warn("update_object_with_data::skipping key=%r", k)
              continue
  
          logger.debug("update_object_with_data::field %r updated", k)
  
      # Validate the entire content object
      invalid = validate_object(content, record)
      if invalid:
          fail(400, u.to_json(invalid))
  
      # do a wf transition
      if record.get("transition", None):
          t = record.get("transition")
          logger.debug(">>> Do Transition '%s' for Object %s", t, content.getId())
          do_transition_for(content, t)
  
      # reindex the object
      content.reindexObject()
      return content
docs: Update the content with the record data
  
      :param content: A single folderish catalog brain or content object
      :type content: ATContentType/DexterityContentType/CatalogBrain
      :param record: The data to update
      :type record: dict
      :returns: The updated content object
      :rtype: object
      :raises:
          APIError,
          :class:`~plone.jsonapi.routes.exceptions.APIError`