Как настроить куда перенаправлять после выхода из системы в Django? - PullRequest
78 голосов
/ 15 марта 2011

Просто интересно, где я могу установить URL для перенаправления после выхода из системы.Я знаю, что вы можете установить URL для входа в систему.Я хочу перенаправить на мою домашнюю страницу.

Ответы [ 9 ]

144 голосов
/ 15 марта 2011

Modern Django (2017+?) Имеет настройку под названием LOGOUT_REDIRECT_URL.

Старые Djangos / Оригинальный ответ

Вам не нужно ничего переписывать или переносить.

Согласно документации, вы можете просто указать аргумент next_page для вида выхода из системы.https://docs.djangoproject.com/en/dev/topics/auth/default/#django.contrib.auth.views.logout

(r'^logout/$', 'django.contrib.auth.views.logout',
                          {'next_page': '/successfully_logged_out/'})
50 голосов
/ 15 октября 2013

Один более простой способ:

Добавьте параметр «следующий» в ваш URL запроса на выход. Например:

<a href="{% url 'auth_logout' %}?next=/path_to_the_page"> Logout</a>

Тогда выход из системы поможет вам.

Для перенаправления после входа в систему вы можете просто установить его в settings.py:

LOGIN_REDIRECT_URL = '/path_to_the_page'
LOGIN_URL = '/path_to_the_page'
30 голосов
/ 06 марта 2017

Начиная с Django 1.10, вы можете определить LOGOUT_REDIRECT_URL ( см. Документы )

6 голосов

Перенаправление на текущую страницу

<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>

Протестировано в Django 1.9.

См. Также: Возможно ли передать параметры запроса через {%% Djangourl%} шаблон тега?

5 голосов
/ 15 марта 2018

Вы можете перенаправить пользователя куда угодно, используя LOGOUT_REDIRECT_URL в файле setting.py

LOGOUT_REDIRECT_URL = 'url name to redirect'
3 голосов
/ 15 марта 2011

В вашем представлении выхода из системы после того, как вы выйдете из системы навсегда, верните HttpResponseRedirect (url)Пожалуйста, см. Здесь для более подробной информации .

2 голосов
/ 20 февраля 2015

Если вы хотите установить URL перенаправления на уровне клиента, вы можете сделать это в urls.py:

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

А потом в шаблоне:

<a href="{% url 'django.contrib.auth.views.logout' %}?next=/">
    Log out
</a>

Где next, вы указываете на правильный URL.

2 голосов
/ 15 марта 2011

Из документов вы можете написать свой собственный вид выхода из системы (который может быть просто оболочкой), переопределяющий «следующую» страницу.

1 голос
/ 08 декабря 2015

Вы даже можете использовать именованные URL для следующего параметра:

<a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...