序列化前更改信息

Changing the information before serialization

我有一个像这样的数据库模型:-

class Script(db.Model):
   path = db.Column(db.String(50))

和一个像这样的序列化器:-

class ScriptSchema(ma.Schema):
   class Meta:
      fields = (
          'path'
   )

我的问题是,当我在查询后转储数据时:-

all_scripts_orm = Script.query.all()
all_scripts = ScriptSchema(many=True).dump(all_scripts_orm)

我以

的形式获取数据
[
   {"path": "Sample_folder/Sample_Script_1.txt"},
   {"path": "Sample_folder/Sample_script_2.txt"}
]

但我希望能够只提取脚本的名称并将其序列化

[
    {"path": "Sample_script_1.txt"},
    ...
]

我不想在脚本模型中为名称创建另一列,我该如何解决这个问题?

使用 Function 字段,文档示例 here and documented here。例如:

from os import path as op

class ScriptSchema(ma.Schema):
   class Meta:
      fields = (
          'path'
   )

   path = fields.Function(lambda obj: op.basename(obj.path))