> -----Original Message-----
> From: sqlalchemy@googlegroups.com 
> [mailto:[EMAIL PROTECTED] On Behalf Of Faheem Mitha
> Sent: 04 December 2008 20:43
> To: sqlalchemy@googlegroups.com
> Subject: [sqlalchemy] returning primary key of object without 
> know what it is called.
> 
> 
> 
> Hi,
> 
> I'm trying to figure out how to have an object return its primary key 
> without knowing what it is called. The docs in 
> http://www.sqlalchemy.org/docs/05/sqlalchemy_orm_mapper.html look 
> relevant, for example the function identity_key_from_instance 
> (see entry 
> from docs below), but I'm not clear about usage. The 
> functions on this 
> page look like they are meant to be used as method functions 
> of a mapper 
> object, but how should I construct such a mapper object? In my schema 
> file, I have lines like
> 
> Mapper(Foo, foo_table)
> 
> should I be returning an mapper object for use with 
> functions? Ie should I 
> be doing
> 
> foo_mapper = Mapper(Foo, foo_table)
> 
> or similar? The section module sqlalchemy.orm.mapper saya
> 
> "This is a semi-private module; the main configurational API 
> of the ORM is 
> available in module sqlalchemy.orm."
> 
> Does this mean it is not meant to be used in this fashion?
> 
> Also, I don't understand what is meant by
> 
> "This value is typically also found on the instance state under the
> attribute name key."
> 
> in the docs for identity_key_from_instance below.
> 
> Please CC me on any reply.
>                                            Thanks and regards, Faheem.
> 
> 

You can get the mapper for a given instance using the
sqlalchemy.orm.object_mapper function, and that mapper has a
'primary_key_from_instance' method. A generic primary_key function might
look like this (untested):


import sqlalchemy.orm as orm

def get_primary_key(instance):
   mapper = orm.object_mapper(instance)
   return mapper.primary_key_from_instance(instance)

Hope that helps,

Simon

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to