Flask sqlalachemy и marshmallow: найден недопустимый тип схемы - PullRequest
0 голосов
/ 14 марта 2020

Я новичок в flask и пытаюсь создать сервис для сопоставления ролей пользователей. Я определил три модели базы данных следующим образом:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class user(db.Model):
  id = db.Column(db.Integer, primary_key=True)
  ... some other fields
  roles = db.relationship("Role", secondary='user_roles')

class Role(db.Model):
  id = db.Column(db.Integer, primary_key=True)
  role_name = db.Column(db.String(80), unique=True, nullable=False)

class UserRoles(db.Model):
  id = db.Column(db.Integer, primary_key=True)
  user_id = db.Column(db.Integer, db.ForeignKey("user.id", ondelete='CASCADE'), nullable=False)
  role_id = db.Column(db.Integer, db.ForeignKey("role.id", ondelete='CASCADE'), nullable=False)

Соответствующие схемы:

from flask_marshmallow import Marshmallow

ma = Marshmallow()

class UserSchema(ma.ModelSchema):
    id = ma.Int(dump_only=True)
    roles = ma.Nested(RoleSchema(only=("role_name",)))

    class Meta:
        model = User
        sqla_session = db.session

class RoleSchema(ma.ModelSchema):

    id = ma.Int(dump_only=True)

    class Meta:
        model = Role
        sqla_session = db.session

class UserRoleSchema(ma.ModelSchema):
    id = ma.Int(dump_only=True)

    class Meta:
        model = UserRoles
        sqla_session = db.session
        include_fk = True

При попытке выполнить я получил следующую ошибку проверки зефира:

{'role': {'_schema': ['Недопустимый тип ввода.']}}

Я понял сообщение, но из-за недостатка знаний не смог найти решение. Любая помощь высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...