2009-05-17 4 views
0

を設定:私はポストされたデータを処理した後パイソンジャンゴ:Google App Engineを持つURLの取り扱い - 私はこのような何かを持っているポストその後、取得

class CategoryPage (webapp.RequestHandler): 
def get(self): 
    ** DO SOMETHING HERE ** 
def post(self): 
    ** DO SOMETHING HERE ** 
    ** RENDER THE SAME AS get(self) 

の質問はどのように私は表示することができるだろう、であり、 get(self)関数と同じ情報ですか?

答えて

3

リダイレクトは、他の人が示唆するように、いくつか利点がありますが、「重い」アプローチのようなものです。代わりに、レンダリング部分を個別の補助メソッドdef _Render(self):にリファクタリングし、getpostメソッドの両方を終了して、self.Render()を呼び出すことを検討してください。

+0

実装方法の例を教えてください。 –

0
create_object(request, form_class=FormClass, 
     post_save_redirect=reverse('-get-url-handler-', 
            kwargs=dict(key='%(key)s'))) 

ポストセーブリダイレクトを指定できる汎用ビューの上記のdjangoショートカットを使用して、あなたのケースに入ります。 このスニペットにはさらにいくつかの例があります。 Btw、私はあなたの質問のタイトルに基づいて、アプリエンジンでdjango(ヘルパーやパッチ)を使用していることを前提としていました。 アプリエンジンパッチを使用している場合は、「myapp」アプリサンプルのviews.pyを調べてください。add_personハンドラのサンプルでは、​​探しているものがあります。

+0

私はアプリエンジンでdjangoヘルプを持っています。上記のコードを少し説明すれば可能でしょうか?ありがとう。 – TimLeung

0

これは一般的には混乱の原因となるため、お勧めできません。あなたは本当に何をしたいのですか?それからgetメソッドにリダイレクトしてください。

0

実際、あなたのコードはDjangoではなくwebapp(Googleのミニフレームワーク)です。 Djangoのドキュメントをお読みください:http://docs.djangoproject.com/

Djangoの一般的なビューは、app-engine-patchでのみ利用できます。ヘルパーはそれらをサポートしていません。 App EngineのDjangoの詳細については、App-Engine-Patchサンプルプロジェクトをご覧ください。http://code.google.com/p/app-engine-patch/

1

GET経由で同じページに戻るようにself.redirect(url)を呼び出します。そうすれば、更新されたフォームが誤って再送信されることはありません。

関連する問題