SA-eşlemeli nesnesinin sığ bir kopyasını otomatik olarak oluşturmaya çalışıyorum .. Şu an işlevim sadece:SQLAlchemy: Tembel yükleme kaçınarak sığ kopya
newobj = src.__class__()
for prop in class_mapper(src.__class__).iterate_properties:
setattr(newobj, prop.key, getattr(src, prop.key))
fakat tembel ilişkilerle ilgili sorun yaşıyorum ... Açıkçası getattr tembel yüklemeyi tetikler, ama değerlerini doğru 'a ihtiyaç duymadığımdan, sadece "bu tembel yüklü" 'in -state özniteliğini kopyalamak isterim ... Bu mümkün mü?
Düzenleme: Bir "veri kaydı" sistemi için buna ihtiyacım var .. Birisi kalıcı bir varlığı güncellediğinde, yeni bir kayıt oluşturmalı ve sonra eski olanı işaretlemeliyim.
Bunu yapmak için nesnenin sığ bir kopyasını yaratıyorum (bu yüzden SQLA bir UPDATE yerine INSERT verir) ve oradan çalışın .. Sistem oldukça güzel çalışıyor (aylarca üretimde kullanılıyor) ama şimdi Bunu geliştirmek istedim, böylece tüm ilişkilerin önce tembel yüklü olması gerekmeyecek ..
Günlüğü değiştiriliyor mu? Tüm tarihi devletlerin tarihini koruyan versiyon sistemi gibi görünüyor. –
Tam olarak, "class_mapper (src .__ class __)", do 'object_mapper (src)' yerine – Joril
öğesinin tüm sürümlerini saklar. Doğrudan '__foo__' özelliklerine erişmekten kaçının. – nosklo