You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Flask-SQLAlchemy模型和Schema添加字面量属性

解决方法

要在序列化结果中添加非数据库字段的status_map,可以通过Marshmallow的两种方式实现,以下是可行方案:

方案一:使用@post_dump装饰器

在Schema类中添加后置处理方法,将status_map注入序列化后的结果:

class DemoSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = Demo
        load_instance = True
        ordered = True

    @ma.post_dump
    def add_status_map(self, data, **kwargs):
        data['status_map'] = Demo.status_map
        return data

方案二:定义Method字段

直接在Schema中声明Method类型字段,指定取值方法:

class DemoSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = Demo
        load_instance = True
        ordered = True

    status_map = ma.Method("get_status_map")

    def get_status_map(self, obj):
        return Demo.status_map

两种方式都不会影响数据库操作,仅在序列化对象时将status_map添加到返回结果中。

内容的提问来源于stack exchange,提问作者Remi Colinet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:31:01