0

私は django と python の上級初心者です。会議の登録と要約の提出を処理するアプリを作成しており、クラスベースのビューを使用しようとしています。ユーザーは、URL に登録コードを含むリンクを電子メールで受け取ります。ユーザーは、この URL から始めて、必要なすべての情報を収集する一連のビューを移動します。

複雑なのは、ユーザーがしばしば途中でやめ、数日または数週間後にプロセスを完了したいという事実から来ています. これは、ユーザーが現在のページから続行するか、元のリンクをクリックする可能性があることを意味します。さらに、数週間後、特定の締め切りに間に合わなかった可能性があります。たとえば、アブストラクトを提出できなくなりました (ただし、登録はできます)。その過程で、ユーザーはさまざまなオプションをチェックしたり、チェックを外したりして、アプリのパスに影響を与えました。

私の質問は: ユーザーが現在そのページを表示できるかどうかを決定するロジックを配置するのに最適な場所はどこですか?許可されていない場合は、それらをリダイレクトするのに最適な URL も? たとえば、dispatch メソッドをオーバーライドしてグローバル チェック (たとえば、会議の登録は開いていますか?) を含めるカスタム ビュー クラスを作成し、サブクラスで追加のチェックを追加できます (たとえば、ユーザーが会議に必要なすべての情報を入力したかなど)。彼女のアブストラクト?) 私が遭遇した問題は、チェックが間違った順序で実行されたことです (基本クラスのチェックを最初に実行したい)。次に、カスタム ビュー デコレータまたはカスタム ミドルウェアの調査を開始しました。この時点で、どのアプローチを取るべきかについて専門家のアドバイスを利用できることに気付きました。(問題があれば、私は django 認証システムを使用していません。) よろしくお願いします。

4

1 に答える 1

0

フォーム ウィザードは、表示シーケンスの管理に役立つかもしれません。

一般に、 django graybeardsは行単位のロジックをModelsに、表単位のロジックを に保持することを提唱してManagersいるため、複雑なビュー ロジックをマスター ビュー クラスに保持することが適切と思われます。

ウィザード クラスはビューの順序を維持するのに役立ちますが、古いセッションを再開するには、いくつかのモデルの保存 (非常に複雑になりすぎる可能性があります) または Cookie の処理が必要になる場合があります。

以前、似たような状況になったとき、ユーザー登録とユーザーがやりたいタスク(イベント登録)を分けるという、一番シンプルな方法をとっていました。ユーザーは1 回登録しますが、イベント登録に失敗した場合は、後日再度ログインして、再度ログインする必要があります (ユーザーの手間はかかりますが、あなたの責任ではありません!)。

于 2013-02-15T14:37:59.413 に答える