flask-sqlalchemy:如何根据用户的角色 ID 为 select 用户制作一个 select 可用按钮?
flask-sqlalchemy: how to make a selectable button to select the users according to his role id?
这是基于flask-admin example。
我想根据角色 ID 而不是所有用户,为数据库中的 select 用户构建 select 下拉按钮。
例如:说 superusers(role id=2),我怎样才能制作一个 select 仅限制用户 的可用按钮超级用户 可以被 select 编辑(在我的 class Project
中)?
roles_users = db.Table(
'roles_users',
db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
db.Column('role_id', db.Integer(), db.ForeignKey('role.id'))
)
class Role(db.Model, RoleMixin):
id = db.Column(db.Integer(), primary_key=True)
name = db.Column(db.String(80), unique=True)
def __str__(self):
return self.name
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('users', lazy='dynamic'))
email = db.Column(db.String(255), unique=True)
def __str__(self):
return self.email
class Project(db.Model):
*some code here make the selectable button to select users that are superusers*
角色table:
角色用户table:
您的 User
模型定义了与 Role
模型的多对多关系。您可以使用此关系按角色 ID 查询用户。
users = User.query.join(User.roles).filter(Role.id == 123).all()
或者,您可以先查询 Role
,然后使用 users
属性访问该角色的用户。
role = Role.query.get(123)
users = role.users
有关详细信息,请参阅 SQLAlchemy 文档:
这是基于flask-admin example。
我想根据角色 ID 而不是所有用户,为数据库中的 select 用户构建 select 下拉按钮。
例如:说 superusers(role id=2),我怎样才能制作一个 select 仅限制用户 的可用按钮超级用户 可以被 select 编辑(在我的 class Project
中)?
roles_users = db.Table(
'roles_users',
db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
db.Column('role_id', db.Integer(), db.ForeignKey('role.id'))
)
class Role(db.Model, RoleMixin):
id = db.Column(db.Integer(), primary_key=True)
name = db.Column(db.String(80), unique=True)
def __str__(self):
return self.name
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('users', lazy='dynamic'))
email = db.Column(db.String(255), unique=True)
def __str__(self):
return self.email
class Project(db.Model):
*some code here make the selectable button to select users that are superusers*
角色table:
角色用户table:
您的 User
模型定义了与 Role
模型的多对多关系。您可以使用此关系按角色 ID 查询用户。
users = User.query.join(User.roles).filter(Role.id == 123).all()
或者,您可以先查询 Role
,然后使用 users
属性访问该角色的用户。
role = Role.query.get(123)
users = role.users
有关详细信息,请参阅 SQLAlchemy 文档: