【发布时间】:2012-01-19 06:51:49
【问题描述】:
我有桌子
# File : MyRelations.py
ACC_ADD_TABLE = Table('acc_add_rel', METADATA,
Column('acc_id', ForeignKey('acc.id'),
nullable=False),
Column('add_id', ForeignKey('address.id'),
nullable=False),
PrimaryKeyConstraint('add_id', 'acc_id'),
)
# File : Address.py
class Address(Base):
id = Column(Integer, primary_key=True,)
type = Column(String(length=10), nullable=False)
# File : Account.py
class Account(Base):
id = Column(Integer, primary_key=True,)
addresses = relationship('Address',
secondary=ACC_ADD_TABLE
)
# default_address = relationship('Address',
# secondary=ACC_ADD_TABLE,
# primaryjoin=and_("ACC_ADD_TABLE.add_id==Address.id",
# "ACC_ADD_TABLE.acc_id==Account.id",
# "Address.type='default'")
# )
根据示例,我想访问帐户中的所有默认地址。我可以使用declared_attr,也可以编写函数,但是有没有办法在单个and_ 操作中结合Table 和Class 属性?
注意:Address.py 和 Account.py 都是不同的文件,由于循环依赖,我无法在其他模型中导入任何模型
谢谢你的帮助。
【问题讨论】:
标签: python orm sqlalchemy relation