Просто интересно, где я могу установить URL-адрес для перенаправления после выхода из системы. Я знаю, что вы можете установить URL-адрес для входа. Я хочу перенаправить на свою домашнюю страницу.
Ответы:
В современном Django (2017+?) Есть настройка под названием LOGOUT_REDIRECT_URL
.
Вам не нужно ничего перезаписывать или оборачивать.
Согласно документам, вы можете просто указать 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/'})
Один более простой способ:
Добавьте параметр 'next' к 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'
base.html
и забыл об этом. : D (Я использую винтажный Django в Debian Jessie: S, поэтому новые настройки недоступны.)
Начиная с Django 1.10, вы можете определить LOGOUT_REDIRECT_URL
( см. Документацию )
Вы можете перенаправить пользователя куда угодно, используя LOGOUT_REDIRECT_URL в вашем файле setting.py
LOGOUT_REDIRECT_URL = 'url name to redirect'
Перенаправить на текущую страницу
<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>
Протестировано в Django 1.9.
См. Также: Можно ли передать параметры запроса с помощью тега шаблона Django {% url%}?
В представлении выхода из системы после выхода пользователя из системы верните HttpResponseRedirect (url). Пожалуйста, смотрите здесь для получения более подробной информации .
Из документации вы можете написать свое собственное представление выхода из системы (которое может быть простой оболочкой), переопределив «следующую» страницу.
Если вы хотите установить 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.
Если вы определили свои собственные URL-адреса (а не импортировали общие URL-адреса авторизации) и используете стандартные представления авторизации django, их можно просто добавить (template_name = 'example.html') в путь.
path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")
добавьте это в свой файл project setting.py
LOGOUT_REDIRECT_URL = '/'
вы можете написать свой URL-адрес между '' Я использую свою страницу индекса для перенаправления выхода по умолчанию