Всем привет.
Есть 4 таблицы
class Roles(Base):
__tablename__ = 'roles'
def __repr__(self):
return f"{self.name}"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String)
description = Column(String)
users = relationship('Users', back_populates='role')
permissions = relationship('RolesPermissions', back_populates='role')
class Module(Base):
__tablename__ = 'modules'
def __repr__(self):
return f"{self.name}"
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String, unique=True)
code = Column(SQLEnum(ModuleEnum), unique=True)
description = Column(String)
permissions = relationship('RolesPermissions', back_populates='module')
class RolesPermissions(Base):
__tablename__ = 'roles_permissions'
def __repr__(self):
return f"{self.id}"
id = Column(Integer, primary_key=True, autoincrement=True)
role_id = Column(Integer, ForeignKey('roles.id'))
module_id = Column(Integer, ForeignKey('modules.id'))
is_create = Column(Boolean, default=0)
is_read = Column(Boolean, default=0)
is_update = Column(Boolean, default=0)
is_delete = Column(Boolean, default=0)
role = relationship('Roles', back_populates='permissions')
module = relationship('Module', back_populates='permissions')
class Users(Base):
__tablename__ = "users"
def __repr__(self):
return f"{self.email}"
id = Column(Integer(), primary_key=True, autoincrement=True)
email = Column(String(255), nullable=False)
first_name = Column(String(255), nullable=True)
last_name = Column(String(255), nullable=True)
patronymic = Column(String(255), nullable=True)
role_id = Column(Integer, ForeignKey('roles.id'))
password = Column(String(255), nullable=False)
sort = Column(Integer(), default=1000)
active = Column(Boolean(), default=True)
created_on = Column(DateTime(), default=datetime.now)
updated_on = Column(DateTime(), default=datetime.now, onupdate=datetime.now)
role = relationship('Roles', back_populates='users')
Теперь стоит задача через пользователя достать данные из таблицы RolesPermissions и Module т.к. роль связанна с этими таблицами.
user.role - работает, а user.role.permissions - выводит только массив id RolesPermissions, а не массив объектов...
И вот с этим проблема не пойму как это решить.
Я уже пробовал поиграть с lazy параметрами, но все четно....
Буду рад любой помощи)