class Obj(Base): __tablename__ = "pref_object" id = Column(Integer, primary_key=True) caption = Column(String) class Photo(Base): __tablename__ = "pref_object_photos" obj_id = Column(Integer, ForeignKey("pref_object.id"), primary_key=True) filename = Column(String, primary_key=True) obj = relationship(Obj, backref="images") def __init__(filename: str): self.filename = filename obj = Obj() db_session.add(obj) object.images = [Photo("1.jpg"), Photo("2.jpg"), Photo("3.jpg")] # Добавил 3 даписи в таблицу pref_object_photos db_session.commit() object.images = [Photo("2.jpg"), Photo("3.jpg"), Photo("4.jpg")] # Одну удалил, одну добавил db_session.commit()
Тонкий момент, чтобы алхимия улавливала изменения, а не сначала терла все записи, потом заново добавляла