cả mối quan hệ Group.users và Group.users_dynamic đều đang cố gắng điều hòa thực tế rằng Nhóm đang bị xóa cùng với việc có thể quản lý User()
đối tượng mà chúng đề cập đến; một mối quan hệ thành công trong khi mối quan hệ thứ hai không thành công, vì các hàng trong bảng liên kết đã bị xóa. Giải pháp đơn giản nhất là đánh dấu tất cả trừ một trong các mối quan hệ giống hệt nhau là chỉ xem:
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')
nếu bạn vẫn muốn có cả hai mối quan hệ xử lý một số mức độ đột biến, bạn cần phải làm điều này một cách cẩn thận vì SQLAlchemy không biết cách phối hợp giữa các thay đổi trong hai mối quan hệ cùng một lúc, vì vậy xung đột như thế này có thể tiếp tục xảy ra (như chèn kép, v.v.) nếu bạn thực hiện các đột biến tương đương trên cả hai mối quan hệ. Để tự giải quyết vấn đề "xóa", bạn cũng có thể thử đặt Group.users_dynamic thành 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')