SqlAlchemy无法确定连接条件

时间:2014-10-29 14:41:37

标签: python sqlalchemy pyramid

我定义了2个表:

class TCableSet(Base):
    __tablename__ = 'tCableSet'

    ixCableSet = Column(Integer, primary_key=True)
    decCableSetOne = Column(Numeric(8, 2))
    decCableSetTwo = Column(Numeric(8, 2))
    decCableSetThree = Column(Numeric(8, 2))

class TStepVoltage(Base):
    __tablename__ = 'tStepVoltage'

    ixStepVoltage = Column(Integer, primary_key=True)
    ixSubReport = Column(Integer, ForeignKey('tSubReport.ixSubReport'), nullable=False)
    iVoltage = Column(Integer)
    ixPhaseA = Column(Integer, ForeignKey('tCableSet.ixCableSet'), nullable=False)
    ixPhaseB = Column(Integer, ForeignKey('tCableSet.ixCableSet'), nullable=False)
    ixPhaseC = Column(Integer, ForeignKey('tCableSet.ixCableSet'), nullable=False)

    sub_report = relationship('TSubReport',
                              backref=backref('step_voltage'))

我理解为什么我会收到此错误,但无法找到正确的方法(还)。 保存表时,我将值存储在tCableSet表中,然后在我的tStepVoltage表中将id用作外键。我遇到的问题是,当我去检索数据时,我希望能够通过关系获取值tCableSet行)以及我tStepVoltage表的其余部分,但是我是由于我的tCableSet中没有可以通过与tStepVoltage的关系直接关联的字段,因此我不确定如何解决这个问题。我基本上只需要tCableSet进行规范化

1 个答案:

答案 0 :(得分:1)

由于您有多个指向同一个表的外键,因此您必须告诉SQLAlchemy使用哪个外键。

例如:

sub_report_a = relationship('TSubReport',
                            backref=backref('step_voltage'),
                            foreign_keys=[ixPhaseA])