棉花糖嵌套字段(发布嵌套对象)

时间:2020-02-05 05:40:40

标签: flask sqlalchemy flask-sqlalchemy marshmallow

我正在尝试使用以下模型构建角色许可系统:

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"))

有人有什么建议吗?

0 个答案:

没有答案