Имеется три модели:
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(50))
class Role(Base):
__tablename__ = "roles"
id = Column(Integer, primary_key=True, autoincrement=True)
role = Column(String(50))
class UserRole(Base):
__tablename__ = "users_roles"
id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
role_id = Column(Integer, ForeignKey("roles.id"), primary_key=True)
У одного пользователя может быть много ролей. Для этого и создал промежуточную таблицу. Не пойму как сформировать корректно модели и запросы так, чтобы:
1. При добавлении пользователя можно было бы назначать ему роль из существующих и добавлять пользователя в таблицу пользователей, а связку пользователь + роль в таблицу users_role.
2. Существующему пользователю можно было бы добавлять или убирать роли из существующих в таблице roles.
Подскажите, пожалуйста, решение.