Google App Engine Webapp フレームワーク アプリケーションのコンテキストでは:
パラメータ _method が指定されている場合に、リクエストのリクエスト動詞を変更したい。たとえば、POST リクエストがパラメータ _method=PUT で受信された場合、ハンドラーの put メソッドを呼び出すようにリクエストを変更する必要があります。これは、prototype.js が PUT や DELETE (IE の回避策) などの動詞を処理する方法に対処するためです。これが私の最初の試みです:
クラス MyRequestHandler (webapp.RequestHandler): def initialize(self、リクエスト、レスポンス): m = request.get('_method') もしm: request.method = m.upper() webapp.RequestHandler.initialize(セルフ、リクエスト、レスポンス)
問題は、何らかの理由で、リダイレクトが行われるたびに、初期化が呼び出されたときに設定されていても、処理メソッド (put または delete) が呼び出されるまでに self.request.params が空になることです。これがなぜなのか、誰にも手がかりがありますか?回避策として、initialize() 時に params を複製できると考えましたが、.copy() は機能せず、その方法も見つかりませんでした。
更新: Arachnid から非常に役立つ回答を受け取りました。私がたどり着いた解決策は、メタクラスを使用しています。以下にあります。