Oh, that is a good idea and it's working.
Thanks ;-)

On 11 Sie, 20:12, "Michael Bayer" <[email protected]> wrote:
> grassoalvaro wrote:
>
> > This is not exactly what i was looking for. I want to connect only one
> > model with some kind of operations, not all session...
>
> scan through Session.dirty etc. for the objects you want.   if a new
> extension "MapperExtension.before_flush()" were added it would be working
> more or less the same way anyway.
>
>
>
> > On 11 Sie, 19:36, "Michael Bayer" <[email protected]> wrote:
> >> grassoalvaro wrote:
>
> >> > Hmm, but after_insert() is the best place where i can put this king
> >> > logic (updating/inserting data in may places). So i can't use session
> >> > operations inside of after_insert() at all?
>
> >> nope.  use before_flush() or after_flush() on SessionExtension for that.
>
> >> > On 11 Sie, 18:35, "Michael Bayer" <[email protected]> wrote:
> >> >> you can't do Session operations and commits inside of after_insert().
> >> >> you're already in the session.flush() operation.  I guess I have to
> >> make
> >> >> this clearer for every individual method in the docs.
>
> >> >> grassoalvaro wrote:
>
> >> >> > I don't know why but now exception is:
>
> >> >> > InvalidRequestError: Instance '<DBAccount at 0x134360d0>' is not
> >> >> > persisted
>
> >> >> > On 11 Sie, 01:34, grassoalvaro <[email protected]> wrote:
> >> >> >> Hi,
>
> >> >> >> example from Pylons application, but i think that framework
> >> doesn't
> >> >> >> matter here:
>
> >> >> >>     class DBAccountExtension(orm.interfaces.MapperExtension):
> >> >> >>         def after_insert(self, mapper, connection, instance):
> >> >> >>             response = hrd.user_create(instance.to_hrd())
> >> >> >>             if response['status'] == hrd.STATUS_OK:
> >> >> >>                 instance.csa = response['resdata']['user']['id']
> >> >> >>                 db.save_or_update(instance)
> >> >> >>                 db.commit()
> >> >> >>             return orm.interfaces.EXT_CONTINUE
>
> >> >> >> After saving model i'm making request to some API (to save data
> >> there
> >> >> >> also). API return status information (response['resdata']['user']
> >> >> >> ['id']) which i want to update in database so i'm trying to do
> >> >> >> db.save_or_update(instance) and then db.commit() but after this 2
> >> >> >> lines application prints exception:
>
> >> >> >> InvalidRequestError: The transaction is closed
>
> >> >> >> Any solutions?
>
> >> >> >> (sorry for my english).
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to