@domanskiy

Как добиться автоматической генерации Shema модели используя Marshmallow и SQLAlchemyAutoSchema?

Вроде бы действую по документации тут

Есть модель и схема:
class TypeMaterial(db.Model):
    __tablename__ = 'types_material'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), unique=True)
    description = db.Column(db.String(255))

    def __repr__(self):
        return f'<ICC Profile: {self.name}>'

# Исплользую  SQLAlchemyAutoSchema для авто-генерации схемы
class TypeMaterialSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = TypeMaterial
        load_instance = True


В блюпринте пробую на GET запрос, сделать вывод в консоль json БД
@api.route('/')
@login_required
def index():
    items = TypeMaterial.query().all()
    result = TypeMaterialSchema.dump(items)
    pprint(result)


Выдаёт ошибку в консоль:
File "E:\MyPyProjects\flask\app\api\blueprint.py", line 45, in index
result = TypeMaterialSchema.dump(items)
TypeError: dump() missing 1 required positional argument: 'obj'


Что я делаю не правильно?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
@domanskiy Автор вопроса
Нашел решение
items = TypeMaterial.query.all()
    items_schema = TypeMaterialSchema(many=True)
    results = items_schema.dump(items)
    print(results)
    return jsonify(results)


Мне кажется очень удобным использование SQLAlchemyAutoSchema
Может кто напишет, есть ли у него подводные камни?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы