Задать вопрос
@Vlad1987
учу Python

Как после авторизации перенаправлять обратно на страницу, с которой ушёл?

Долго гуглил, но нашёл только статью 11-летней давности на Stackoverflow, и мало что понял, честно говоря.

В навигационной панели на сайте есть ссылка, чтобы залогиниться. Эта ссылка есть на каждой странице.

Подскажите, пожалуйста, как сделать так, чтобы после перехода по этой ссылке и последующей авторизации пользователя перекидывало обратно на ту страницу, с которой он пришёл, когда кликал на ссылку, чтобы залогиниться.

Единственное, что я понял, что необходимо как-то использовать django.contrib.auth.views.login и next. Из документации тоже мало что понятно.
  • Вопрос задан
  • 497 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@alekssamos
Программист любитель
Так обычно же передаётся GET параметр next? Подробней здесь
UPD: А, ещё про referer подумал, тоже может пригодится.
back_url = request.get["next"] or request.META["HTTP_REFERER"] or request.path
                # ещё можешь добавить reverse("index")

return redirect(back_url)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@FlooJack

Почитай тут ОБЯЗАТЕЛЬНО, рекомендую на всякий случай.

А так самый простой пример: return redirect("https://www.djangoproject.com")

И так же просмотрите как чел сделал:
Как реализовать авторизацию на Django?


Пример из док:
from django.http import HttpResponse
from django.template import loader

def my_view(request):
    # View code here...
    t = loader.get_template('myapp/index.html')
    c = {'foo': 'bar'}
    return HttpResponse(t.render(c, request), content_type='application/xhtml+xml')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы