Je veux cloner un objet sqlalchemy:
Je l'ai essayé par
product_obj = products.all()[0] #here products is service name
product_obj.product_uid = 'soemthing' #here product_uid is the pk of product model
products.save(product_obj)
il ne fait que mettre à jour le old_object
voici le code de la fonction products.save
class Service(object):
__model__ = None
def save(self, model):
self._isinstance(model)
db.session.add(model)
db.session.commit()
return model
Cela devrait fonctionner:
product_obj = products.all()[0]
db.session.expunge(product_obj) # expunge the object from session
make_transient(product_obj) # http://docs.sqlalchemy.org/en/rel_1_1/orm/session_api.html#sqlalchemy.orm.session.make_transient
product_obj.product_uid = 'something'
db.session.add(product_obj)
Une approche possible consiste à utiliser dictalchemy :
new_instance = InstanceModel(**old_instance.asdict())