HTTP 补丁中缺少 web2py request.post_vars

web2py request.post_vars missing in HTTP PATCH

我想利用 HTTP PATCH 来更新记录中的单个字段(将其与 PUT 区分开来,后者应更新整个记录)。但是,由于 gluon/globals.py:[=12 中的 parse_post_vars 中的这一行,post_vars(我计划保留更新的字段)似乎没有在请求对象中被解析=]

and env.request_method in ('POST', 'PUT', 'DELETE', 'BOTH')):

我们在该列表中没有 PATCH 是有原因的吗?

注意,request.post_vars 旨在成为一个类似字典的对象(从表单数据或 JSON 派生),但补丁文档不需要。例如,如果您发送 application/json-patch+json 类型的补丁,如 here 所述,生成的 Python 对象将是一个列表。

由于补丁文档格式灵活,请自行解析应用。您随时可以通过 request.body.read().

直接阅读补丁文档

我想 web2py 可以自动解析 application/merge-patch+json 类型的补丁文档(如 here). Feel free to post to the developer's list 关于这种可能性的描述。