我用棉花糖验证我的输出。我有两个棉花糖计划
class IdentitiesList(Schema):
items = fields.List(fields.String, required=True)
class UsersListSchema(Schema):
items = fields.Nested(UserDescriptionSchema, many=True)
出于多种原因,我将该方案组合成一个方案,在某些情况下,我的服务应返回字符串数组并使用第一个方案,在其他情况下,则应使用第二个方案。
有可能吗?否则我应该更改服务行为。
答案 0 :(得分:0)
可能我的问题不清楚,但是我找到了解决方案。我创建了新的Schema类,其中重新加载了方法dump
:
class DetailedListSchema(Schema):
"""This schema serialize objects according input data"""
def dump(self, obj, many=None, update_fields=True, **kwargs):
if obj.get('items') == [] or (obj.get('items') and isinstance(obj['items'][0], UUID)):
return IdentitiesList().dump(obj, many, update_fields, **kwargs)
elif obj.get('items') and isinstance(obj['items'][0], User):
return UsersListSchema().dump(obj, many, update_fields, **kwargs)
else:
raise ValueError