我正在尝试使用以下模型构建角色许可系统:
class Role:
role_id = db.Column(db.Integer, primary_key=True)
owner_id = db.Column(db.Integer, db.ForeignKey('user.user_id'))
role_name = db.Column(db.String, nullable=False)
members = db.relationship("RoleMemberModel", backref="role_member", lazy=True)
created_ts = db.Column(db.DateTime)
class RoleMembership:
role_id = db.Column(db.Integer, db.ForeignKey('role.role_id'), primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.user_id'), primary_key=True)
is_owner = db.Column(db.Boolean, default=False)
理想情况下,我希望能够发布类似这样的信息来创建一个角色,该角色将在两个表中创建记录:
{
role_name: "Role Name",
members: [1, 2, 3]
}
我正在尝试使用棉花糖嵌套模式来实现此目的,但是我遇到了一些问题。
class RoleSchema(ma.ModelSchema):
class Meta:
include_fk = True
model = RoleModel
members = ma.List(ma.Pluck(RoleMemberSchema, "user_id"))
有人有什么建议吗?