On 8/24/2010 1:51 PM, Michael Bayer wrote:
On Aug 24, 2010, at 2:08 PM, Michael Hipp wrote:
I'm holding an orm object that will have changes made to it. Once done it will
be passed to the business logic layer that will have to make decisions from the
before and after state of the object...
What's the best way to get an object, save its state ('before'), modify it
('after) without any chance of the modifications creeping into the before?
Assume both copies are from the same session.
You'd probably call session.flush() (or commit(), depending on how you are
scoping your transaction around this operation) before you do anything to it.
Then, if you'd like the subsequent modifications to not go to the database at
all until some later point, you'd proceed with your subsequent operations with
autoflush turned off - recipes for that are at
http://www.sqlalchemy.org/trac/wiki/UsageRecipes/DisableAutoflush .
Thank you. But I didn't understand any of that ... at least as it
relates to my question.
How do I make a copy of an orm object such that modifications to the
copy do not affect the original?
(Obviously I could detach one of them, but then it becomes useless as
none of the attributes can be accessed.)
Could you perhaps repeat the answer in baby-talk language?
Thanks,
Michael
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to sqlalch...@googlegroups.com.
To unsubscribe from this group, send email to
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.