Основываясь на этого урока из документации, короткий ответ таков: когда отношение представлено одним объектом, как здесь:
class Child:
parent_id = Column(Integer, ForeignKey('parent.id'))
parent = relationship("Parent", back_populates="children")
назначение объекта класса Parent дляэтого будет достаточно:
parent = Parent()
child.parent = parent
и parent = child.parent
получит родительский объект.Согласно руководству, это происходит из-за событий изменения атрибута и оценивается в Python .Когда отношение представлено коллекцией, возможны различные типы коллекций, такие как наборы и словари, но по умолчанию используется список Python :
class Parent:
children = relationship("Child", back_populates="parent")
Так что здесь вы можете назначитьсписок дочерних объектов:
parent.children = [
Child(),
Child()
]
Или получить список объектов из свойства children
и изменить его.