0

我想在我的棉花糖序列化器中实现字段的动态过滤

例如,我有一个函数可以从我的序列化程序中接收我想要的字段:

# fields = ['id', 'orders', 'orders.prop1', 'orders.id', 'orders.items.id']

def serialize_test(self, fields)
    if fields:
        schema = MainSchema(only=fields)
    else:
        schema = MainSchema()

在棉花糖中,这适用于第一级嵌套字段(例如,,orders.prop1orders.prop2现在我想要进一步指定嵌套属性中的字段orders。类似orders.items.id

我注意到这在棉花糖中不起作用,所以我想就如何在不更新序列化程序类的情况下实现这一点征求意见。这是序列化程序类顺便说一句:

class MainSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = MainModel
    
    orders = ma.Nested(FirstLevelSchema)
class FirstLevelSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = FirstLevel
        include_fk = True

    items = ma.Nested(SecondLevelSchema)
class SecondLevelSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = SecondLevel
        include_fk = True

    sku = ma.Nested(ItemsSchema)

基本上,我希望我的序列化程序返回所有/所有字段,并且我将在调用函数中动态指定我的字段,而不管我传递了多少嵌套字段。

4

0 回答 0