假设我们有一个'People'表,其中包含'HomeAddressID'和'WorkAddressID'列。
我们正在定义与表'地址'的多个连接路径关系,如下所示:
HomeAddress = relationship('Addresses', foreign-keys=[HomeAddressID])
WorkAddress = relationship('Addresses', foreign-keys=[WorkAddressID])
现在我希望我的班级“地址”有一个属性“人物”,列出所有与此地址相关的人,无论是家还是工作。
我该怎么做?
答案 0 :(得分:0)
执行此操作的最简单的通用方法是使用人员< - >地址映射的映射表,其中列为“人员ID,地址ID,类型”,否则在数据库端开始变得有点沉重。
答案 1 :(得分:0)
未经测试,但您可以添加backref:
HomeAddress = relationship('Addresses', foreign_keys=[HomeAddressID],
backref='home_address')
WorkAddress = relationship('Addresses', foreign_keys=[WorkAddressID], backref='work_address')
然后你可以这样做:
Addresses.home_address.all() or Addresses.work_address.all()