2012-10-06 12 views
46

可能性の重複:
Django: Redirect to previous page after loginDjangoの同じ(前の)ページにリダイレクト/リターンしますか?

あなたはジャンゴで同じページにユーザーを返すようにしたいと、それぞれの長所/短所は何時にオプションは何ですか?私が知っている

方法:前のURLに、以前のURLを保存する

  • セッションデータ
  • を含む

    • HTTP_REFERER
    • GETパラメータ以外はありますか?

      from django.http import HttpResponseRedirect 
      
      def someview(request): 
          ... 
          return HttpResponseRedirect(request.META.get('HTTP_REFERER')) 
      

      ない本の短所を確認してください。

    +8

    リンク "ログイン後" と言います。私は「ログイン後」に尋ねましたか?この質問は、この主題の実際の概要になります。それは-1に値するものではなく、+1に値する。 Jeeez –

    +2

    逆に、ロジックはゲットやポストと変わらず、リダイレクションの問題です。何らかの推論を定義するまで、プロとコンが関与していない、あなたの質問は広範で、適切な研究や試行がない限りです。 –

    +3

    これは非常に異なっています。 Djangoのログインとコメントのリダイレクトが組み込まれています。私の質問は他の場合です;) –

    答えて

    83

    方法の一つは、以下のようにのようなHTTP_REFERERヘッダを使用しています!

    +7

    私は、多くのユーザー/ブラウザがhttp_refererをオフにしているという事実が大きいと思います。 –

    +3

    ヘッダーをオフにするのがどれくらい難しいか知っていますか?ほとんどのユーザーは、それをオフにする方法だけでなく、それが何であるかを知らない。 FirefoxとChromeでは、環境設定を手動で編集する必要があります(これを行う方法は、あまり知られていません)。 IEでは、これをまったく無効にすることはできません(セキュリティ保護されたサイトでは自動的に無効になります)。 –

    +35

    request.METAが設定されていないと、サイトのメインページにリダイレクトする方が良いと思います。return HttpResponseRedirect(request.META.get( 'HTTP_REFERER'、 '/')) – nickzam

    4

    質問と回答は古いですが、いくつかの選択肢がありません。私はその方法についてどんな短所も見つけられていない、もしあれば私は知ってうれしいだろうか?

    関連する問題