PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come faccio a fare riferimento due volte a una tabella di chiavi esterne?

SQLAlchemy non è in grado di rilevare il percorso della relazione.

user_id = Column(ForeignKey('user.id'))
user = relationship(User, backref=backref('votes_user'))
responder_id = Column(ForeignKey('user.id'))
responder = relationship(User, backref=backref('votes_responder'))

Esegui il responder la relazione deve unirsi utilizzando responder_id o user_id ? So che è ovvio per noi, ma SQLAlchemy non considera i nomi delle colonne qui. Puoi rinominare responder_id come foobar e non farà alcuna differenza.

Definisci le chiavi esterne che desideri utilizzare per ogni relazione.

user = relationship(User, foreign_keys=[user_id], backref=backref('votes_user'))
responder = relationship(User, foreign_keys=[responder_id], backref=backref('votes_responder'))