All,

I got it working, and you're both right, of course, the flushing should and 
ultimately does populate the .id.

In my case, I was flushing two mutually-referential objects of the same type 
(rows in the same table), appending them to a relationship on an object of 
another type (another table), and the id from the other table wasn't getting 
populated, either. I did some research, and carefully reordering my 
rel.append() and session.flush() statements along with making use of the 
post_update parameter on the relationship I've gotten it to work.

Thanks again for your help and time!
Mike
________________________________
From: sqlalchemy@googlegroups.com [sqlalchemy@googlegroups.com] on behalf of 
Michael Bayer [mike...@zzzcomputing.com]
Sent: Wednesday, November 06, 2013 4:02 PM
To: sqlalchemy@googlegroups.com
Subject: Re: [sqlalchemy] "Immediate" access to value of a new object's 
Sequence primary key column?


flushing will populate the .id attribute.   Set echo=True on your 
create_engine() and you’ll see this happening.    If you’re not seeing it, then 
perhaps you’re not flushing what you think you are.  Provide a fully working 
sample here if all else fails, we can show you how to make it work.




On Nov 6, 2013, at 2:14 PM, Michael Nachtigal 
<michael.nachti...@catalinamarketing.com<mailto:michael.nachti...@catalinamarketing.com>>
 wrote:

Jonathan,

Thank you for your time and reply, but that still does not work for me. Even 
after adding the object to the session and flush()ing, its id is still None.

Thanks,
Mike
________________________________
From: sqlalchemy@googlegroups.com<mailto:sqlalchemy@googlegroups.com> 
[sqlalchemy@googlegroups.com<mailto:sqlalchemy@googlegroups.com>] on behalf of 
Jonathan Vanasco [jonat...@findmeon.com<mailto:jonat...@findmeon.com>]
Sent: Wednesday, November 06, 2013 2:01 PM
To: sqlalchemy@googlegroups.com<mailto:sqlalchemy@googlegroups.com>
Subject: [sqlalchemy] Re: "Immediate" access to value of a new object's 
Sequence primary key column?

You missed adding the object to the session, before the flush.

this should work:

   new_foo = Foo('red')
   dbSession.add(new_foo)
   dbSession.flush()
   print new_foo.id




--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
sqlalchemy+unsubscr...@googlegroups.com<mailto:sqlalchemy+unsubscr...@googlegroups.com>.
To post to this group, send email to 
sqlalchemy@googlegroups.com<mailto:sqlalchemy@googlegroups.com>.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
sqlalchemy+unsubscr...@googlegroups.com<mailto:sqlalchemy+unsubscr...@googlegroups.com>.
To post to this group, send email to 
sqlalchemy@googlegroups.com<mailto:sqlalchemy@googlegroups.com>.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to