У меня есть следующие настройки трех классов, где A имеет отношение 1 к n с B, а B имеет отношение 1 к n с C.
Довольно стандартно, за исключением фактачто A также имеет прямое отношение 1 к n с C
class A:
id = Column(Integer)
class B:
id = Column(Integer)
a_id = Column(Integer, ForeignKey("A.id"))
a = relationship("A")
class C:
id = Column(Integer)
a_id = Column(Integer, ForeignKey("A.id"))
b_id = Column(Integer, ForeignKey("B.id"))
b = relationship("B", backref="cs")
Теперь, когда я добавляю экземпляр C
в список инструментов B.cs
и очищаю сеанс, sqlalchemy автоматически установитC.b_id
для меня.
Есть ли способ настроить эти классы, чтобы он также автоматически устанавливал C.a_id
в этой ситуации?
Я знаю, что могу использовать прослушиватель событий, но ямне интересно, если есть более простое решение.