我想使用orm複製SQLAlchemy中的模型實例(行)。我首先想到的是要做到這一點:SQLAlchemy:修改分離對象
i = session.query(Model)
session.expunge(i)
old_id = i.id
i.id = None
session.add(i)
session.flush()
print i.id #New ID
然而,顯然是分離的對象仍然是「記住」它有什麼ID,即使我將ID設置爲無,而這是超脫。因此,session.flush()嘗試執行UPDATE,將主鍵更改爲null。
這是預期的行爲?如何刪除此屬性的「內存」,並將分離的對象重新添加到會話時將其視爲新對象?一般來說,如何克隆SQLAlchemy模型實例?
謝謝,沒有看到它的文檔。 –
複製關係以及@zzzeek的正確方法是什麼? – jmagnusson
我也對類似的東西感興趣。我有興趣將克隆一個實體(一行)及其所有「子」實體(其他表中的行,外鍵指向此行),並將此新的重複行及其重複的子行附加到新的父實體通過新的重複行中的不同外鍵(但不影響現有實體及其子實體)。我可以在另一個問題上看到這個部分的答案,因此:http://stackoverflow.com/questions/20112850/sqlalchemy-clone-table-row-with-relations?lq=1 – Soferio