hubungan Group.users dan Group.users_dynamic mencoba untuk mendamaikan fakta bahwa Grup sedang dihapus bersama dengan kemampuan untuk mengelola User()
objek yang mereka rujuk; satu hubungan berhasil sementara yang kedua gagal, karena baris dalam tabel asosiasi telah dihapus. Solusi paling mudah adalah menandai semua kecuali satu dari hubungan yang identik sebagai hanya dapat dilihat:
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')
jika Anda masih ingin agar kedua hubungan menangani beberapa tingkat mutasi, Anda harus melakukannya dengan hati-hati karena SQLAlchemy tidak tahu bagaimana mengoordinasikan perubahan di dua hubungan pada saat yang sama, jadi konflik seperti ini dapat terus berlanjut terjadi (seperti sisipan ganda, dll) jika Anda membuat mutasi yang setara pada kedua hubungan. Untuk mengatasi masalah "hapus" dengan sendirinya, Anda juga dapat mencoba menyetel Group.users_dynamic ke 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')