Hi,

How do I access an extra column of a many_to_many table without
accessing the table directly?

My code is as follows:

query_expert_table = Table("query_expert", metadata,
                     Column("query_id", Integer,
ForeignKey("query.query_id"), primary_key=True),
                     Column("expert_id", Integer,
ForeignKey("user.user_id"), primary_key=True),
                     Column("status", String(50))
)

class Query(ActiveMapper):
    class mapping:
        query_id = column(Integer, primary_key=True)

        experts = many_to_many("User", query_expert_table,
backref="queries")


Is there an easy way of getting the status of an query-expert
relation. Something like:

 select.query(Query).get_by(query_id=1).experts[0].status ? (Which
does not work..)

Or do I always have to access the many_to_many table directly with a
new select i.e. this way?

class QueryExpert(object):
    pass

mapper(QueryExpert, query_expert_table,
       primary_key=[query_expert_table.c.query_id,
query_expert_table.c.expert_id],
       properties={
            'query' : relation(Query, lazy=False),
            'expert' : relation(User, lazy=False)
       }
)

status = session.query(QueryExpert).get_by(and_(QueryExpert.c.query_id
== 1, QueryExpert.c.expert_id == 1)).status (Works, but is an extra
select)

I guess there must be an easier way which I have overseen...

Best,

Robert


--~--~---------~--~----~------------~-------~--~----~
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