GET_MANY预处理器接受内置的search_params
字典,但GET_SINGLE预处理器只接受instance_id
。kw**
参数被传递给所有的前处理器和后处理器,但我发现这只是为了向前兼容性,尽管这在Flask Restless文档中有些不清楚:
预处理器和后处理器函数的参数将作为关键字参数提供,因此在定义预处理器或后处理器函数时,应始终添加**kw作为最终参数。通过这种方式,您可以在定义函数时仅指定所需的关键字参数。此外,如果Flask-Restless的新版本更改了API,则可以在不破坏代码的情况下更新Flask-Rest。
那么,是否不可能将instance_id
以外的参数传递给GET_SINGLE预处理器?
编辑
也许有一种更好的方法来做我正在尝试做的事情:我有两个模型,Foo
和Bar
。Foo
中的记录将Bar
中的记录的外键存储为其列之一。我希望向Foo
发送一个GET请求,该请求指定外键的值,以从Foo
中的一组记录中返回具有请求值的外键的单个准随机记录。
正如@1.618所指出的,我的特定用例更适合GET_MANY请求,即使我只需要一个项目作为响应。我仍然不确定我最初问题的答案,但我的直觉是,不,没有办法将参数传递给GET_SINGLE请求,因为在Flask不安中,它们只适用于id查询项目的情况。
我的特定问题的解决方案是使用GET_MANY请求,我最初尝试过这个请求,但由于我错误地操作了search_params
参数,以及我对如何在Python中传递变量感到困惑,所以无法正常工作。