首页 > 解决方案 > SQLAlchemy 嵌套 JSONIFY

问题描述

我正在编写一个端点来列出类别的嵌套级别,并且当我尝试使用 marshmallow_sqlalchemy 呈现它时。我发现没有运气。

模型

class Category(db.Model, Serializer):
    __tablename__ = 'category'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    parentId = db.Column(db.ForeignKey('category.id'), nullable=False, index=True, server_default=db.FetchedValue())
    active = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())

架构

class CategorySchema(ModelSchema):
    class Meta:
        model = Category
        
        
class CategoriesSchema(ModelSchema):
    class Meta:
        model = Category
    subcategories = fields.Nested(CategorySchema, many=True)
categories = Category.query.all()
        items = [{'root': root, 'subcategories':
                    [Category for Category in categories if Category.parentId == root.id]
                }
            for root in categories if root.parentId == 0]
        categorySchema = CategoriesSchema(many=True)
        output = categorySchema.dumps(items)
        print(jsonify(output))

回复:

"[{\"subcategories\": [{\"id\": 2, \"name\": \"Sample_child\", \"active\": 1}]}]"

标签: pythonflask-sqlalchemymarshmallow

解决方案


推荐阅读