Просто цікаво, куди я можу встановити 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 ви можете визначити a LOGOUT_REDIRECT_URL
( див. Документи )
Ви можете перенаправити користувача куди завгодно, використовуючи LOGOUT_REDIRECT_URL у файлі settings.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-адреси для наступного параметра:
<a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>
Якщо ви хочете встановити 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 auth, їх ви можете просто додати (template_name = 'example.html') у шлях.
path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")
додайте це у файл проекту setting.py
LOGOUT_REDIRECT_URL = '/'
Ви можете написати свою URL-адресу між '' Я використовую свою індексну сторінку для перенаправлення за замовчуванням