Sqlalchemy 多对一和同一表的一对一关系

时间:2021-02-03 12:23:06

标签: python sqlalchemy flask-sqlalchemy

我认为这很可能是我的设置错误。但我真的找不到解决方案,大多数其他解决方案要么针对不同的案例,要么没有获得批准的真正解决方案。


class Person(Base):
    id = Column(Integer, primary_key=True)

    car_id = Column(Integer, ForeignKey("Car.id"))
    car = relationship("Car", foreign_keys=[car_id], uselist=False)


class Car(Base):
    id = Column(Integer, primary_key=True)

    driver_id = Column(Integer, ForeignKey("Person.id"))
    driver = relationship("Person", foreign_keys=[driver_id], uselist=False, back_populates="car")

    passengers = relationship("Person", uselist=True, foreign_keys=[Person.id], back_populates="car")

我有一个类似上面的结构。当我尝试运行它时,我得到的是:ArgumentError: Person.car and back-reference Car.driver are both of the same direction symbol('MANYTOONE').,我不明白,因为 Person.car 清楚地定义了 OneToOne 左右,我认为它确实如此。

0 个答案:

没有答案