0

我有一个数据库模型,例如:-

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"},
    ...
]

我不想在 Script Model 中为 name 创建另一列,我该如何解决这个问题?

4

1 回答 1

1

在此处使用Function字段、文档示例并此处记录。例如:

from os import path as op

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

   path = fields.Function(lambda obj: op.basename(obj.path))
于 2020-10-23T14:30:41.157 回答