私はユーザーがデータを投稿できるサイトを作っています。新しい投稿を追加するには、ユーザーはフォーム - >プレビュー - >投稿ページの3つの状態を通過する必要があります。私は、すでに「投稿済み」ページに到達した後、ブラウザの「戻るボタン」を使ってプレビューページに戻ることをユーザーに制限したい(代わりに、空のフォームページにリダイレクトする必要があります)。どのように私はDjangoでこの動作を実装できますか?ブラウザ「戻るボタン」(別のページにリダイレクトする)を使用して、前のページに戻ることを制限する方法はありますか?
答えて
あなたがユーザーのブラウザを制限してコントロールしているので、Djangoからこのような動作を得る方法がわかりません。しかし、JavaScriptであなたが使用することができます。
window.location.replace(url);
ので作業から戻るボタンを防止すること、歴史を削除しますました。
What's the difference between window.location= and window.location.replace()?
アイデア:あなたのプレビューページから、提出し、すべてが成功した場合、あなたの投稿のページへwindow.location.replaceするためにAJAXを使用し
は、ウィンドウの位置については、このスタックオーバーフローの質問を参照してください。
これはブラウザ技術を使って対処する方法については話すことができませんが、djangoではセッションでフラグを設定するだけで済みます。
# posted_page view
request.session['posted_page_visited'] = True
# preview_page view
if request.session.get('posted_page_visited'):
del request.session['posted_page_visited']
return http.HttpResponseRedirect("form_page")
Djangoのform wizardあなたが欲しいものを行う必要があります。
- ユーザー訪問:それはここでは
仕組み
は、ユーザーがウィザードを使用する方法のための基本的なワークフローですウィザードの最初のページで、フォームに記入して提出します。
- サーバーはデータを検証します。無効な場合は、エラーメッセージとともにフォームが再度表示されます。有効な場合、サーバーは のバックエンドに現在の状態を保存し、 次の手順にリダイレクトします。
- ステップ1と2は、ウィザードの後続のフォームごとに繰り返します。
- ユーザーがすべてのフォームを送信し、すべてのデータが検証されると、ウィザードでデータが処理されます。 データベースに保存したり、電子メールを送信したり、アプリケーションが行う必要があるすべてのデータを処理します。
あなたの解決策が私の質問に全く答えていないので、あなたは私の質問を持っていないと思います。私の実装は既にDjangoのフォームプレビューアプリを採用しているので、ワークフローはそこにあります。 – tamakisquare
フォームのプレビューはフォームウィザードとは異なり、重要な部分はセッション管理です。私はあなたの問題を理解しています。 –
- 1. 前のページに戻る[戻る]ボタン
- 2. jsでリダイレクトする方法と、前のページに戻るとアラートする方法はありますか?
- 3. ブラウザの戻るボタンの前のページを設定します
- 4. INavigationAwareの[戻る]ボタンを使用して前のページにパラメータを渡す方法
- 5. ブラウザのボタンを押す前にページに戻る
- 6. ページをリフレッシュするjqueryまたはphpを使用してブラウザの戻るボタン
- 7. 前のページに戻る前のページに戻るとアンドロイド電話のボタン(前のページに戻る)とは何ですか?アンドロイドフォンの
- 8. ブラウザの戻るボタンを押すたびにページをリロードする方法はありますか?
- 9. ブラウザ(IE、Chrome、Firefox Safari)の戻るボタンを押すと、ページを更新する方法はありますか?
- 10. ページ内のボタンを押すと、ブラウザの戻るボタンイベントを発生させる方法はありますか?
- 11. 「前のページ」の戻るボタン
- 12. JSFを使用して前のページに戻る方法
- 13. ページをリフレッシュするときや戻るときに別のページにリダイレクトする方法
- 14. 戻るボタンを押すと前の画面に戻る方法
- 15. F5キーを使用してページをリフレッシュするか、ブラウザの戻るボタンを使用して戻るかどうかを確認するには
- 16. ブラウザの戻るボタンと前のページのURL
- 17. ブラウザでAndroidの戻るボタンをクリックすると、oauthがブラウザに戻ります
- 18. 前のページに戻る方法
- 19. 前のページに戻る方法php
- 20. Salesforce Visualforceページのブラウザの戻るボタンを検出します。
- 21. "戻る"ボタンを使用して前のレイアウトに戻る
- 22. DrawerLayout戻るボタンを使用して前のアクティビティに戻る
- 23. グリッドビューのボタンをクリックして別のページにリダイレクトする方法
- 24. 別のページにリダイレクトするボタンを実装する方法は?
- 25. 私が残したページを示すブラウザの戻るボタンを止める方法
- 26. 前のページに戻る前のページに戻る1つ前のキーを押しますAndroid WebViewフラグメント
- 27. ブラウザに戻ると、サイトをリロードします。戻るボタン
- 28. 戻るボタンを使用してメインビューに戻ります
- 29. ブラウザの戻るボタンを制御する方法
- 30. 前のページに戻る
私は確かにあなたのアプローチを試みましたが、別の問題があります。 「戻るボタン」をクリックしてプレビューページに戻ると、ページのヘッダーに 'Cache-Control:no-cache'を指定しても、サーバーから何らかの形でページがロードされません。プレビューページを強制的にどのように強制することができるかについての考え方は、常にサーバーからロードされますか?どうも。 – tamakisquare