ユーザーのログイン後、backが押されたときlogin.htmlの表示

私はログインフォームを持っています。ログインボタンを押すとユーザーのホームページが表示されます。しかし、ブラウザの戻るボタンを押すと、ログインフォームに制御が戻る。 私はdjango開発サーバーを使用しています。

キャッシュとdjango @ no-cacheを防ぐためにメタタグを挿入しようとしました。

しかしそれはうまくいかない

1
あなたはこれのための任意の解決策を見つけることができますか?
追加された 著者 Sakeer,

3 答え

ログインページでは、ユーザーセッションが存在するかどうかを確認する必要があります。ユーザーセッションが存在する場合は、そのユーザーを自分のホームページにリダイレクトする必要があります。

しかし、これはHTMLページではできませんので、あなたのログインページにはある種のサーバーサイドスクリプト言語(PHP、ASP、JSPなど)を使用する必要があります。

2
追加された
Djangoでこの問題をどのように解決できるかを示すために、あなたの答えを更新してください。あなたのような一般的な答えは役に立たない。十分な場合upvote。
追加された 著者 bouke,
    response = <the_way_you_create_response> (ie direct_to_template, HttpResponse)
    response['Cache-Control'] = 'no-cache, no-store'
    return response

もちろん、ビュー内でrequest.user.is_authenticated()をチェックする必要があります(値がTrueの場合はリダイレクトを行います)

1
追加された
たぶん、しかし、ログインビューが装飾されても、ブラウザの戻るボタンを押すとログインページが表示されます。なぜなら、キャッシュされる(そしてリクエストは再送信されない)からです。あなたの答えは、直接入力の問題のみを解決します。
追加された 著者 drul,
ログインしていてもデフォルトのdjangoログインページが表示されます。これはキャッシュの問題ではありません。
追加された 著者 bouke,

ログイン時にデフォルトのdjangoログインページを表示することができます。ログインビュー機能を装飾し、既にログインしている場合はユーザをリダイレクトすることができます。

1
追加された