У меня есть пример, похожий на один в документации.Двунаправленные отношения многие ко многим.
class Association(Base):
__tablename__ = 'association'
left_id = Column(Integer, ForeignKey('left.id'), primary_key=True)
right_id = Column(Integer, ForeignKey('right.id'), primary_key=True)
extra_data = Column(String(50))
child = relationship("Child", back_populates="parents")
parent = relationship("Parent", back_populates="children")
class Parent(Base):
__tablename__ = 'left'
id = Column(Integer, primary_key=True)
children = relationship("Association", back_populates="parent")
class Child(Base):
__tablename__ = 'right'
id = Column(Integer, primary_key=True)
parents = relationship("Association", back_populates="child")
Проблема в том, что при создании родителя с количеством детей и попытке обновить родителя (с детьми) session.merge(updated_parent_with children)
вызывает ошибку достижения максимальной рекурсии.
Это имеет смысл для меня, так как родитель имеет круговую зависимость от ребенка.Разве нет способа указать глубину сравнения при использовании session.merge ()
В документации или где-либо еще я не нашел примера того, как выполнить обновление для многих таким образом.Помощь