11
Bir sqlalchemy nesnesi klonlamak istiyorum
ile sqlalchemy db nesnesi klonlamak için:yeni birincil anahtar
Bunu sadece old_object sadece
buradaolduğu güncelliyor
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)
tarafından denedim Bu çalışması gerekir
class Service(object):
__model__ = None
def save(self, model):
self._isinstance(model)
db.session.add(model)
db.session.commit()
return model
Bu make_transient birincil anahtar kaldırmaz bu oldukça can sıkıcı görünüyor. Bir girişin bir kopyasını oluşturmak birincil kullanım durumu ise bu mantıklı olmaz mıydı? – SebK
@SebK Nesnenin bir kopyasını PK'yi değiştirmeden (her ne sebeple olursa olsun) gerekebilir. PK'yi koruyarak API daha fazla kapsayıcıdır. İhtiyacınız olduğunda ID'yi değiştirmeniz gerektiğinden daha fazla temiz olması gerekir. –
Teşekkürler! Ayrıca benim gibi yenileri için (1) make sqlchemy.orm.session import make_transient öğesinden make_transient öğesini ve (2) birincil anahtarının None olarak ayarlanmasını, "session.add (obj)" de otomatik oluşturulmuş birincil anahtarı kullanacağını belirtir. 've' session.commit() '. –