2011-11-09 10 views
0

私はdjangobookを読んで、HttpResponseRedirectrender_to_responseについて質問をしています。HttpResponseRedirectと一緒に変数を送信する最も良い方法

私はビューを確認するためにデータを投稿する連絡先フォームがあるとします。それはすべての検証とデータベースのものを通過します。その後、通常の方法として、I出力は

return render_to_response('thank_you.html', 
          dict(user_code = user_code), 
          context_instance=RequestContext(request)) 

とHTMLは、しかし、この本は「あなたが常に成功POST要求のリダイレクトを発行する必要があります。」提案しましたこのページでユーザーが「更新」すると、リクエストが繰り返されるためです。 user_codeをHttpResponseRedirectに沿ってthank_you.htmlに送信する最も良い方法は何ですか?

答えて

0

は、クエリ文字列に情報を渡します。

クエリ文字列の問題は、ユーザーがデータを見ることができることです。

0

send a redirectとすると、ユーザーは応答(a 302 HTTP response)を返信し、提供されたURLに対して全く新しい要求を行います。これはまったく新しいリクエスト/レスポンスサイクルなので、セッション変数、キャッシュ、Cookieなどに保存しない限り、データを提供する方法はありません。

リダイレクトするように指示する代わりにできることは、同じ要求(つまり、リダイレクトを発行する時点)から自分自身を見せたいと思っている場合は、好きなものを渡すことができます。

thank_you/?user_code=1234 

またはセッション変数を使用します。

関連する問題