13

現在、これらのパターンを使用してログインおよびログアウトしています

urlpatterns += patterns("",
    (r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
    (r'^logout/$', 'django.contrib.auth.views.logout', {'template_name': 'logout.html'})
)

settings.py に LOGIN_REDIRECT_URL = '/profile/' が含まれているにもかかわらず、すでにログインしているときに /login/ にアクセスしたい場合、Django は /profile/ に送信しません...

何らかの方法で認証システムの URL パターンをリダイレクトできますか? そのためのカスタムビューを書くのは気が進まない。

4

6 に答える 6

1

プロジェクトurls.pyファイル (リスト) で、次のようにログイン パスにパラメーターとしてurl_patterns追加します。redirect_authenticated_user=True

path('admin/', admin.site.urls),
path('login/', auth_views.LoginView.as_view(
                 template_name='blog_app/login.html', 
                 redirect_authenticated_user=True
                 ), name='login'),
于 2021-07-25T17:09:39.587 に答える
0

このデコレータを使用できます

def login_excluded(redirect_to):
    """ This decorator kicks authenticated users out of a view """
    def _method_wrapper(view_method):
        def _arguments_wrapper(self, request, *args, **kwargs):
            if self.request.user.is_authenticated:
                return redirect(redirect_to)
            return view_method(request, *args, **kwargs)
        return _arguments_wrapper
    return _method_wrapper
于 2021-02-17T17:02:15.350 に答える