както връзките Group.users, така и Group.users_dynamic се опитват да съгласуват факта, че групата се изтрива заедно с възможността да управляват User()
обекти, за които се отнасят; една връзка е успешна, докато втората е неуспешна, тъй като редовете в таблицата на асоциациите вече са изтрити. Най-простото решение е да маркирате всички, освен една от идентичните връзки, като само за преглед:
class Group(Base):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True)
users = relationship('User', secondary=users_groups, lazy='select', backref='groups')
users_dynamic = relationship('User', viewonly=True, secondary=users_groups, lazy='dynamic')
ако все още искате и двете връзки да се справят с известна степен на мутации, ще трябва да направите това внимателно, тъй като SQLAlchemy не знае как да координира промените в две връзки едновременно, така че конфликти като този могат да продължат се случва (като двойни вмъквания и т.н.), ако направите еквивалентни мутации и в двете връзки. За да се погрижите само за проблема с "изтриването", можете също да опитате да настроите Group.users_dynamic на passive_deletes=True:
class Group(Base):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True)
users = relationship('User', secondary=users_groups, lazy='select', backref='groups')
users_dynamic = relationship('User', passive_deletes=True, secondary=users_groups, lazy='dynamic')