Django: перенаправить на ту же страницу после пользовательского входа - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть этот код для пользовательского логина:

def login(request):
    if request.user.is_authenticated:
        return render(request, 'listings/index.html', {})

    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request, username=username, password=password)
        if user is not None:
            if not request.POST.get('remember_me', None):
                request.session.set_expiry(0)
            auth_login(request, user)
            return redirect('dashboard')
        else:
            messages.error(request, "Les informations que vous venez d'entrer sont incorrects. Veuillez réessayer.")
            return render(request, 'dashboard/login.html', {})
    return render(request, 'dashboard/login.html', {'randomtip': random.choice(RandomTip.objects.all())})

И все мои представления имеют декораторы @login_required и @user_passes_test. Как видно из функции входа в систему, когда пользователь проходит проверку подлинности и входит в систему, он / она перенаправляется на панель мониторинга. Но у меня есть предел истечения сеанса (когда у пользователей истек срок их сеансов через 6 минут). И когда они находятся на определенной странице c, они перенаправляются на логин после истечения срока действия cook ie. Проблема в том, что если они находятся на странице, отличной от панели мониторинга, после входа в систему они перенаправляются на панель мониторинга.

Я хочу, чтобы они оставались на той же странице после повторного входа в систему. Как я могу узнать путь к текущей посещенной странице и поставить его здесь: return redirect(current_page)?

1 Ответ

0 голосов
/ 26 февраля 2020

это делается автоматически django, когда срок действия повара ie истекает, пользователь не передает @login_required, он будет передан на страницу входа с атрибутами html, такими как

http://127.0.0.1: 8000 / login /? Next = / the_page_he_was_in /

ключ здесь /? Next = / в URL он перенаправит обычное перенаправление входа в систему и отправит пользователя напрямую страница, на которой он был

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...