Я новичок в 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': ['Недопустимый тип ввода.']}}
Я понял сообщение, но из-за недостатка знаний не смог найти решение. Любая помощь высоко ценится.