2011-01-04 7 views
3

私は、HttpResponseRedirectが1つのパラメータであるURLだけを受け取ることを知っています。しかし、エラーメッセージを表示してリダイレクトしたい場合があります。HttpResponseRedirectを使用してDjangoでエラーを受け取ります

私はこの記事を読んでいました:How to pass information using an HTTP redirect (in Django)とたくさんの良い提案がありました。私は実際にどのように動作するかわからないライブラリを使用したくない。私は、Djangoの文書によると、削除される予定のメッセージに頼りたくはありません。私はセッションを使うことを考えました。また、次のようなURLに渡すというアイデアが好きです。

return HttpResponseRedirect('/someurl/?error=1') 

エラーコードからメッセージへのマップがあります。これらのエラーメッセージにハードコードがある、またはより良い方法があるグローバルなマップのような構造を持つのは良い習慣ですか?

または私はちょうどセッションに

EDITを使用する必要があります。私はそれがセッションを使用して作業しました。このようなものをセッションに入れるのはよい練習ですか?

+2

まだメッセージフレームワークについて読んでいますか?そうでない場合は、どうしてですか? –

+1

私が言ったように、私は非難され、削除されるWebアプリケーションに何かを入れたいとは思っていません。 Djangoのドキュメントによると、 "Django 1.2で廃止されました:認証システムのMessagesコンポーネントはDjango 1.4で削除されます。" – JPC

+3

"認証システムのメッセージコンポーネント"は、メッセージフレームワークとは無関係です。完全に無関係。両方を混同しないでください。メッセージフレームワークについて実際に読んでください。 –

答えて

9

あなたは正当なメッセージについてです。これらは推奨されていませんが、docsの代わりにdjango messages frameworkを使用することをお勧めします。これはあなたのケースに対する正確な魂です。

+0

私はメッセージページを読んだ。それは有望に見えます。メッセージングフレームワークは、セッションにデータを格納するように設定できるようです。私がよく理解していないことの1つは、パラメータの1つがリクエストです。たとえば、messages.error(request、 'Email box full')を呼び出して、テンプレートにメッセージを渡します。しかし、私はHttpResponseRedirectを持っているとき、私は新しい要求を持っています。新しいメッセージで私のメッセージにはまだアクセスできますか? – JPC

+0

ええ、メッセージはどこかにアクセスするまでセッションに保存されています。 – crodjer

+1

@JPC: "私のメッセージはまだ新しいビューでアクセス可能ですか?"最初の(#1、lead-off、initial)文は、 "Djangoはクッキーとセッションベースのメッセージングを完全にサポートしています"。実際には文書をお読みください。それは明らかです。それがあなたを混乱させたのは何ですか? –

関連する問題