1

ログインには、通常、組み込みのビューを使用します。

(r'^login/$', 'django.contrib.auth.views.login'),

しかし、今日気づいたのですが、すでにログインに成功した後に手動でアクセスするとmyserver.com/login、ログインページが再び表示されます。

これは一貫していません。これを解決する 1 つの方法は、ログイン ビュー関数の上に次の 2 行を追加することでした。

if request.user.is_authenticated():
    return HttpResponseRedirect('/')  

そのため、ユーザーがすでに認証されている場合は、/ にリダイレクトしてください。

ログインに「django.contrib.auth.views.login」を使用している間にこれを達成する方法はありますか?

アップデート:

誰かがすでにこの質問をしていたようです: Django: Redirect login users from login page

ただし、このソリューションは Django 1.5 では機能しなくなったようです

カスタム ログイン内では、次の場所で例外がスローされます。

return login(request)

-->

AttributeError: 'AnonymousUser' object has no attribute 'backend'
4

1 に答える 1

2

結局、私の編集でのこのソリューションは機能します。

代わりに、間違った名前空間をインポートしました

from django.contrib.auth.views import login

私はインポートしました:

from django.contrib.auth import login

これが他の誰かに役立つことを願っています。

于 2013-03-20T08:32:06.457 に答える