On Nov 11, 2008, at 4:52 PM, MikeCo wrote:
>
> Thanks for the pointer about remote_side.
>
> In my application, the table definitions are not visible at runtime,
> and the class definitions are autoloaded from the engine. So, I can't
> say remote_side=table.c.id because table is not available. I do have
> this solution that works well:
>
>
> class People(Base):
> __tablename__ = 'people'
> __table_args__ = {'autoload':True}
>
> People.children = relation(People, cascade="all",
> backref=backref("parent", remote_side=[People.id]))
>
> but I am wondering if I can move the definition of children into the
> class somehow. Using this form:
>
>
> class People(Base):
> __tablename__ = 'people'
> __table_args__ = {'autoload':True}
> children = relation(People, cascade="all",
> backref=backref("parent", remote_side=[People.id]))
class People(Base):
.... arguments ...
children = relation(People, backref=backref("parent",
remote_side="People.id"))
or my preference:
class People(Base):
__table__ = people_table = Table('people', Base.metadata,
autoload=True)
... arguments ...
children = relation(People, backref=backref("parent",
remote_side=people_table.c.id))
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---