I have a model, Account, with two foreign keys / relationships to another 
model, Users.

class Account(object):
     @declared_attr
     def customer_id(cls):
          return Column(ForeignKey(User.id))
     @declared_attr
     def customer(cls):
         return relationship(User, lazy='joined', foreign_keys=cls.customer_id)

     @declared_attr
     def reporter_id(cls):
          return Column(ForeignKey(User.id))
     @declared_attr
     def reporter(cls):
         return relationship(User, lazy='joined', foreign_keys=cls.reporter_id)

session.query(Account) gives me the correct join logic for eager loading. 
The issue comes when I want to load this data into a pandas dataframe. The 
joined columns show up labeled as users_1_colname and users_2_colname which 
makes it unclear which came from reporter and which came from customer. I 
know in a one off query I can use aliases but how can I have a certain 
alias dedicated to a relationship? I don't want to manually generate the 
query and I don't want to change the column names in pandas. I want users_1 to 
always be labeled reporter and users_2 to always be labeled customer when I 
query Account. Is this possible?

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
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 https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to