1

ユーザーがログアウトしてログインページに直接リダイレクトできるようにしたいと思います。Django ユーザー認証ページ(https://docs.djangoproject.com/en/dev/topics/auth/)で、

logout_then_login(request[, login_url])
Logs a user out, then redirects to the login page.

URL name: No default URL provided

Optional arguments:

login_url: The URL of the login page to redirect to. Defaults to settings.LOGIN_URL if not supplied.

私が直面している問題は、ページをクリックすると、ログインページに移動する代わりにページがリロードされることです。

私のコードは以下の通りです:

@login_required
def main(request):
    """
    main view
    """

    path = reverse('home', kwargs={'userpk': request.user.pk})

    return HttpResponseRedirect(path)

@login_required
def home(request, userpk):
    """
    home page view
    """

    if int(userpk) != request.user.pk:
        return HttpResponseForbidden()

    return render(request,
                  'lex/main.html',
                  dictionary={'user': request.user,
                              'userpk': userpk})
def logoutnlogin(request):
    """
    Logout n login back
    """
    return logout_then_login(request,login_url=main(request))

私はどこか分からない間違いをしていると思います..いくつかのガイダンスが必要です...

4

1 に答える 1

2

ログインページのURLを提供する必要があるため、行は

return logout_then_login(request,login_url='/login'))

/loginあなたのログインURLであると仮定するか、ログインURLreverseの名前で使用できますurls.py

于 2012-07-12T04:24:53.270 に答える