SQLalchemy: автоматически заполняет внешний ключ, когда установлен другой внешний ключ. - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть следующие настройки трех классов, где 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 в этой ситуации?

Я знаю, что могу использовать прослушиватель событий, но ямне интересно, если есть более простое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...