Is there a way for SQLAlchemy to silently avoid duplicate entries in a Many-To-Many Association Table?
class UserRole(db.Model):
__tablename__ = 'user_roles'
id = Column(Integer, primary_key=True)
rolename = Column(Unicode(80), unique=True)
UserUserRoleTable = Table('user_user_roles', db.Model.metadata,
Column('user_id', Integer, ForeignKey('
users.id')),
Column('user_role_id', Integer, ForeignKey('
user_roles.id')),
UniqueConstraint('user_id', 'user_role_id', name='uix_1')
)
class User(db.Model):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
roles = relationship("UserRole", secondary=lambda: UserUserRoleTable, backref="users")
Code::
Without the UniqueConstraint rows are the r1 is added twice. With the UniqueConstraint, there is a big error.