2012-04-20 19 views
4

私はDjangoの標準認証を使用しています。 /私の/urls.pyに次のlocを持つログイン。ユーザーがwww.myapp.com呼び出し、ログインがで定義されたLOGIN_REDIRECT_URL = '/午後/ PO /私/'(www.myapp.com/pm/po/my/)にリダイレクトする場合Django - 認証 - リダイレクト

(r'^$', 'django.contrib.auth.views.login', {'template_name': 'home.html', }), 

ログインが正常に動作しますsettings.py。

ユーザーがブラウザタブを閉じてブラウザを開いたままセッションを終了すると、ユーザーはログアウトされません。どちらも素晴らしいです。

しかし、ユーザーが新しいタブを開いてwww.myapp.comに行くと、既にログインしているユーザーがログインしている間に再びログインビューが表示されます。ここでは、ユーザーがwww.myapp.com/にリダイレクトされるようにします。 pm/po/my /です。

どうすればこの問題を解決できますか?

(r'^$', 'myapp.project_management.views.projects'), 
(r'^$', 'django.contrib.auth.views.login', {'template_name': 'home.html', }), 

しかし、これは次のエラーメッセージにつながる:

--Solution--

URLの「このウェブページにはリダイレクトループが含まれてい」

は、私はそれが次の行を追加してみました.py:

(r'^$', 'myapp.project_management.views.my_projects'), 
(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'home.html', }), 

settings.py

LOGIN_URL = '/login' 

答えて

4

ホームURLをログインページに設定しないでください。代わりに、login_required decoratorを使用して、ログインしていないユーザーを必要に応じてログインページにリダイレクトします。

+0

ありがとうございました。簡単で清潔なソリューション。私のポストにコードを追加しました。 –

0

ログインURLの独自のビューを実装し、ユーザーログイン(通常はrequest.method = 'POST')またはこのユーザーが既に承認済みの場合はリダイレクトを行います。

関連する問題