Flask-Restless中的自定义参数



Flask-Restless只接受SQLAlchemy模型中定义的列参数。我想取blue green然后把它存储在两列中primary_colorsecondary_color

现在,我将数据发布为primary_color(允许的字段),并使用postprocessor将其拆分为primary_colorsecondary_color

是否有可能做一些更干净,更语义,像POST一个colors字段,然后处理它之后?

在根据模型验证POST数据之前运行请求预处理器

在API上为POST请求设置一个预处理器,用于解析任何colors键,并在适当的位置更改data字典:

def preprocess_colors(data):
    colors = data.pop('colors', None)
    if colors is not None:
        # set primary and secondary colors
        data['primary_color'] = get_primary_color(color)
        data['secondary_color'] = get_secondary_color(colors)

你确实需要从字典中删除colors密钥,以防止Flask-Restless抱怨密钥在那里。

后处理程序不可能在这里工作;只有在已经创建了新实例之后,才调用这些方法来更改返回的响应

或者,在您的模型上创建一个名为colors的SQLAlchemy hybrid属性,它在setter中将颜色转换为主色和辅助色。

相关内容

  • 没有找到相关文章

最新更新