u'd better edit a new copy and on save copy all back into original 
then commit that one, on cancel abandon the new one (but beware of 
m2m relations if u have them).
all else isn't safe/nice IMO.

On Wednesday 06 May 2009 17:25:47 Marcin Krol wrote:
> Hello,
>
> I would like to implement typical Save / Cancel dialog operating on
> normal SQLA objects.
>
> For that purpose, the most convenient way is to make a shallow copy
> of an object using copy.copy(obj), let the user edit this object,
> and on user pressing OK in dialog replace it in SQLA, e.g. expunge
> existing object and add the edited object as replacement (and
> obviously drop the edited copy of object if user pressed Cancel
> instead).
>
> The reason I'm trying to do this instead of just doing
> session.commit() or session.close() on the changed object is that
> editing in my app is pretty complicated and it is done across many
> http requests, so I obviously need to save the state of the object
> in between them.
>
> Are there any problems with such approach? Risks? Is this safe?
>
> There obviously have to be some issues, such as enforcing the same
> PK in a new obj as in the old object, which is the first issue that
> comes to my mind.
>
>
> Regards,
> mk
>
>
>
>
> 


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to