2011-06-24 3 views
2

私は、ユーザーが郵便番号を入力するように要求された場合、入力した郵便番号に関連する内容のサイトにリダイレクトされます。カテゴリなどがあります。ユーザーは自分の地域に関連するコンテンツのみを表示します。ミドルウェアを使用するか、これにデコレータを書く必要がありますか?

PLAN - 私は、彼らはそれを入力するように指示されなければならない何の郵便番号がない場合はクッキーに自分の郵便番号を保存して、彼らはもちろん、サイトに戻ってくるたびに、それを再利用したい フォーム。他のコンテンツが出る前にフォームが提示されます。

私はこれにデコレータを使用し、カスタムデコレータでビューを飾るべきですか?ミドルウェアを書くべきですか?私はprocess_request process_viewを使用する必要が私はこのカスタムミドルウェアを書く場合、それはprocess_requestがすべての要求で呼び出されるようだ、これは問題を提起する可能性があります。

ありがとうございます!

JeffC

答えて

2

ここでの主な質問は、クッキーの郵便番号の使用頻度です。サイト全体に影響はありますか?それともその一部だけ?

「ZIP指向の」コンテンツが1つの部分(アプリケーション全体ではなく1つ以上)でのみ使用される場合は、デコレータに移動します。クッキーが存在するかどうかを確認し、ZIP選択フォームにリダイレクトする必要があります。存在する場合は、ZIPコードにアクセスしてそれに応じて使用できるビューの処理を続行します。

郵便番号が実際にサービスの大部分に影響を与え、すべての単一のビューを飾る必要がない場合は、ミドルウェアを利用できます。しかし、あなたは正しいです - それはすべての要求に呼び出されるので、絶対に必要であることを確認してください。

+0

サイトの一部を反映するだけですが、ユーザーが自分の地域に関連するコンテンツを見られるようにするのは当然のように見える大きなコンテンツセクションです。 – JeffC

4

あなたが繰り返しを避けたい場合は、ミドルウェアを書く必要があります。あなたが言うようにそれがすべてのページにあり、郵便番号がサイトを使用するための前提条件であるならば、すべての要求にミドルウェアコールprocess_requestを持っていても必ずしも悪いことではありません。

一方、これは必要ですか?あなたのURLはちょうどのように読むことができませんでした:/blah/12345/videos/?ブックマークのクッキーに頼らざるをえなくても、ユーザーはそのページを見直すことができます。それはあなたがビューを書く必要もなくなります。

+1

郵便番号をURLパラメータとして扱うのは非常にクリーンな解決策です。 –

+0

あなたは、このミドルウェア/デコレータ全体の代わりに、まずフォームをプロンプトしてから、他のすべてのビューのURLに郵便番号を渡すビューを作成することをお勧めしますか? – JeffC

+0

私は全体のデコレータ/ミドルウェアのものを避けても構いませんが、私はちょうどそのユーザーが自分の地域固有のコンテンツを見ていることを確認したい、パラメータは大丈夫だろう、私はちょうどそれがdecやミドルウェアがコンテンツを処理する前にこの要求を処理するようにしてください。 – JeffC

関連する問題