我定义了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
进行规范化
答案 0 :(得分:1)
由于您有多个指向同一个表的外键,因此您必须告诉SQLAlchemy使用哪个外键。
例如:
sub_report_a = relationship('TSubReport',
backref=backref('step_voltage'),
foreign_keys=[ixPhaseA])