code: def apply_relationships(self, data, obj):
          
          relationships_to_apply = []
          relationship_fields = get_relationships(self.resource.schema, model_field=True)
          for key, value in data.items():
              if key in relationship_fields:
                  related_model = getattr(obj.__class__, key).property.mapper.class_
                  schema_field = get_schema_field(self.resource.schema, key)
                  related_id_field = self.resource.schema._declared_fields[schema_field].id_field
  
                  if isinstance(value, list):
                      related_objects = []
  
                      for identifier in value:
                          related_object = self.get_related_object(related_model, related_id_field, {'id': identifier})
                          related_objects.append(related_object)
  
                      relationships_to_apply.append({'field': key, 'value': related_objects})
                  else:
                      related_object = None
  
                      if value is not None:
                          related_object = self.get_related_object(related_model, related_id_field, {'id': value})
  
                      relationships_to_apply.append({'field': key, 'value': related_object})
  
          for relationship in relationships_to_apply:
              setattr(obj, relationship['field'], relationship['value'])
docs: Apply relationship provided by data to obj
  
          :param dict data: data provided by the client
          :param DeclarativeMeta obj: the sqlalchemy object to plug relationships to
          :return boolean: True if relationship have changed else False