How can I define a OneToOne-relationship between two tables and have a foreign key on both sides? I know that it is redundant.
class A(Base):
__tablename__ = 'A'
id = Column(Integer, primary_key=True)
b_id = Column(Integer, ForeignKey('b.id'), unique=True, nullable=False)
b = relationship("B", uselist=False, back_populates="a")
class B(Base):
__tablename__ = 'B'
id = Column(Integer, primary_key=True)
a_id = Column(Integer, ForeignKey('a.id'), unique=True)
a = relationship("A", uselist=False, back_populates="b")
This results into an error:
sqlalchemy.exc.AmbiguousForeignKeysError: Could not determine join condition between parent/child tables on relationship ...
I found this duplicate to my question: SQLAlchemy one-to-one, store foreign key in each table? but the accepted answer is not an answer to the question. I only tells that normaly only one key is needed.
question from:
https://stackoverflow.com/questions/65869224/onetoone-relationship-with-a-foreign-key-on-both-sides 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…