Adam Tauno Williams wrote:
> FYI: Upgraded to SQLalchemy 0.5.8
>
> A class produces using __table__ instead of __tablename__ provides the
> field names as in the database, not as mapped in the joined objects
> (below: x1, x2).  [example: I can use x3.job_id but task_id fails.] And
> trying to set columns in the derived class like:
>
> class Action(Base):
>     """ An OpenGroupare Task History Info entry """
>     __table__           = x3
>     object_id = Column('job_history_id')
> #    object_id = Column('job_history.job_history_id') ALSO FAILS
>
> Produces the exception: Can't add additional column 'object_id' when
> specifying __table__
>
> But (a) I want the aliased names and (b) previous post indicated I would
> have to alias the shared column [2].


I think you're looking for synonym() here.    note the descriptive message
you got though !



>
> Confused.
>
> [2]
> http://groups.google.com/group/sqlalchemy/browse_thread/thread/b0ce69e368b444dd/59edd004f450c6bd?lnk=raot
>
>
>> -------------------------------------------
>> #!/usr/bin/python
>> import sys
>> from sqlalchemy import *
>> import sqlalchemy.orm
>> from sqlalchemy.ext.declarative import declarative_base
>>
>> engine = create_engine('postgres://[email protected]/OGo', echo=True)
>> Base = declarative_base()
>>
>> class x1(Base):
>>   __tablename__ = 'job_history'
>>   id       = Column('job_history_id', Integer,
>> Sequence('key_generator'), primary_key=True)
>>   task_id  =  Column('job_id', Integer)
>>   actor_id = Column('actor_id', Integer)
>>   action   = Column('action', String)
>>
>> class x2(Base):
>>   __tablename__ = 'job_history_info'
>>   _info_id = Column('job_history_info_id', Integer,
>> Sequence('key_generator'), primary_key=True)
>>   comment  = Column('comment', String)
>>   _hist_id = Column('job_history_id', Integer, ForeignKey(x1.id))
>> # ALSO WORKS _hist_id = Column('job_history_id', Integer,
>> ForeignKey('job_history.job_history_id'))
>>
>> x3 = sqlalchemy.orm.join(x1, x2)
>>
>> class Action(Base):
>>     """ An OpenGroupare Task History Info entry """
>>     __table__           = x3
>>
>> Session = sqlalchemy.orm.sessionmaker()
>> Session.configure(bind=engine)
>> db = Session()
>>
>> z = Action()
>> z.job_id = 1
>> z.comment = 'TEST TEST TEST'
>> z.actor_id = 0
>> z.action = 'test'
>> db.add(z)
>>
>> db.commit()
>>
>> query = db.query(Action).filter(Action.job_id == 1)
>> for a in query.all():
>>   print a.comment
>>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to [email protected].
> 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.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
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