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.