ich ein sqlalchemy Objekt klonen klonen möchten: Wie ein sqlalchemy db Objekt mit neuen Primärschlüssel
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)
von
ich es versucht, ist es nur die old_object nur
Aktualisierung hierist der Code von products.save Funktion
class Service(object):
__model__ = None
def save(self, model):
self._isinstance(model)
db.session.add(model)
db.session.commit()
return model
Es scheint ziemlich ärgerlich, dass make_transient nicht den Primärschlüssel nicht entfernt. Wäre das nicht sinnvoll, wenn das Erstellen einer Kopie eines Eintrags der primäre Anwendungsfall ist? – SebK
@SebK Die Sache ist, dass Sie möglicherweise eine Kopie des Objekts benötigen, ohne die PK (aus welchen Gründen auch immer) zu ändern. Durch das Beibehalten der PK ist die API umfassender, da es einfacher ist, die ID zu ändern, wenn Sie sie benötigen, als eine ID-Referenz zu behalten, falls Sie sie benötigen. –
Danke! Auch Hinweise für newbees wie mich, dass (1) make_transient in 'von sqlalchemy.orm.session import make_transient' finden und (2) das Setzen des Primärschlüssels auf None verwendet dann den automatisch generierten Primärschlüssel in' session.add (obj) 'und' session.commit() '. –