В контексте каркасного приложения Google App Engine Webapp:
Я хочу изменить глагол запроса в случае
предоставляется параметр _method, например, если приходит запрос POST
с параметром _method = PUT, мне нужно изменить запрос для вызова
поставить метод обработчика. Это чтобы справиться со способом prototype.js
работает с глаголами, такими как PUT и DELETE (обходной путь для IE). Вот мой
первая попытка:
class MyRequestHandler(webapp.RequestHandler):
def initialize(self, request, response):
m = request.get('_method')
if m:
request.method = m.upper()
webapp.RequestHandler.initialize(self, request, response)
Проблема в том, что по какой-то причине, когда перенаправление выполняется,
self.request.params очищаются к тому времени, когда метод обработки (положить или
delete) вызывается, даже если они были заполнены при инициализации
называется. Кто-нибудь знает, почему это так? В качестве обходного пути я думал, что я
может клонировать параметры во время инициализации (), но .copy () не работает,
и я тоже не нашел способа сделать это.
Обновление: я получил очень полезный ответ от Арахнида. Решение, которое я выбрал, использует метакласс. Найдено ниже.