2016-10-17 10 views
0

Я ищу, чтобы использовать HTTP PATCH для обновления одного поля в записи (отличая это от PUT, который должен обновить всю запись). Однако представляется, что post_vars (который я планирую провести обновленные поля) не получает проанализирован в объекте запроса из-за этой линии в parse_post_vars в глюонной/globals.py:web2py request.post_vars отсутствует в HTTP PATCH

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

Есть ли причина того, что мы не У меня есть PATCH в этом списке?

ответ

1

Примечание: request.post_vars предназначен для словарного объекта (полученного из данных формы или JSON), но патч-документ не обязательно должен быть. Например, если вы отправляете патч типа application/json-patch+json, как описано here, результирующий объект Python будет списком.

Поскольку формат патч-документов является гибким, вы должны обрабатывать разбор и применять их самостоятельно. Вы всегда можете прочитать патч-документ напрямую через request.body.read().

Я полагаю, что web2py может автоматически анализировать патч-документ типа application/merge-patch+json (как описано here). Не стесняйтесь публиковать до developer's list об этой возможности.

+0

Спасибо за ответ. Я, скорее всего, просто разобраю его сам. – zhaomin

 Смежные вопросы

  • Нет связанных вопросов^_^