首页 > 解决方案 > 使用数据库中不存在的字段嵌套在 Python 和 Marshmallow 中

问题描述

我在棉花糖中有这些模式:

class Parents(Schema):
     father = fields.String(data_key="father")
     mother = fields.String(data_key="mother")

class UserSchema(Schema):
     user_id = fields.Integer(data_key="userID")
     name = fields.String(data_key="nameUser")
     parents = Nested(Parents, many=True)

“father”和“mother”与“user_id”和“name”在同一个表中,但“parents”只是JSON的一个属性:

{
    "data": [
        {
            "userID": 1,
            "nameUser": "Guido",
            "parents": {
                "father": "John",
                "mother": "Marie"
            }
        }
        ...
    ]
}

我用“嵌套”类尝试过,但它不起作用。那么当模型中不存在“parents”属性时如何进行嵌套呢?

标签: pythonserializationmarshmallowflask-marshmallow

解决方案


我想出了答案,基本上是这样的:

parents = fields.Function(lambda x : {'mother': x.mother, 'father': x.father})

推荐阅读