Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQLAlchemy: Modification of detached object

Tags:

I want to duplicate a model instance (row) in SQLAlchemy using the orm. My first thought was to do this:

i = session.query(Model) session.expunge(i)  old_id = i.id i.id = None session.add(i) session.flush() print i.id #New ID 

However, apparently the detached object still "remembers" what id it had, even though I set the id to None while it was detached. Thus, session.flush() tries to execute an UPDATE changing the primary key to null.

Is this expected behavior? How can I remove the 'memory' of this attribute, and just treat the detached object as a new object upon re-adding it to the session? How, in general, does one clone an SQLAlchemy model instance?


Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!