Bir ornek kullanarak SQLAlchemy'de bir model örneğini (satır) çoğaltmak istiyorum. Benim ilk düşünce bunu idi:SQLAlchemy: Ayrılmış nesnenin değiştirilmesi
i = session.query(Model)
session.expunge(i)
old_id = i.id
i.id = None
session.add(i)
session.flush()
print i.id #New ID
Ancak görünüşe müstakil nesne hala o müstakil iken ben Yok olarak id set bile, ne vardı id "hatırlar". Böylece, session.flush(), birincil anahtarı null olarak değiştirerek bir UPDATE yürütmeyi dener.
Bu beklenen davranış? Bu özniteliğin 'belleğini' nasıl kaldırabilirim ve yalnızca ayrılmış nesneyi yeniden oturum üzerine ekledikten sonra yeni bir nesne olarak ele alabilir miyim? Genel olarak, bir SQLAlchemy model örneğini nasıl klonlar?
sayesinde dokümanlar bunu görmedi. –
İlişkileri kopyalamanın uygun yolu nedir, @zzzeek? – jmagnusson
Ben de benzer bir şeyle ilgileniyorum. Bir varlığın (satır), tüm “çocuk” varlıkları ile birlikte (diğer satırlardaki satırlar, bu sıraya işaret eden yabancı anahtarlar ile) klonlanması ve bu yeni yinelenen satırın ve yinelenen çocukların yeni bir ana öğeye bağlanmasıyla ilgileniyorum Yeni çoğaltılmış satırdaki farklı bir yabancı anahtar aracılığıyla (ancak var olan varlığı ve onun çocuk varlıklarını etkilemeden). Bu kısmi cevabı SO hakkındaki başka bir soruda görebiliyorum: http://stackoverflow.com/questions/20112850/sqlalchemy-clone-table-row-with-relations?lq=1 – Soferio