Zastanawiam się tylko, gdzie mogę ustawić adres URL przekierowania po wylogowaniu. Wiem, że możesz ustawić adres URL logowania. Chcę przekierować do mojej strony głównej.
django
authentication
DJ.MaSs
źródło
źródło
Jeden łatwiejszy sposób:
Dodaj parametr „next” do adresu URL żądania wylogowania. Na przykład:
<a href="{% url 'auth_logout' %}?next=/path_to_the_page"> Logout</a>
Wtedy widok wylogowania załatwi sprawę za Ciebie.
W przypadku przekierowania po zalogowaniu możesz po prostu ustawić go w settings.py:
LOGIN_REDIRECT_URL = '/path_to_the_page' LOGIN_URL = '/path_to_the_page'
źródło
base.html
i zapominając o tym. : D (Używam klasycznego Django na Debianie Jessie: S, więc nowe ustawienia nie są dostępne.)Od Django 1.10 możesz zdefiniować
LOGOUT_REDIRECT_URL
( zobacz dokumentację )źródło
Możesz przekierować użytkownika w dowolne miejsce, używając LOGOUT_REDIRECT_URL w swoim pliku setting.py
LOGOUT_REDIRECT_URL = 'url name to redirect'
źródło
Przekieruj do bieżącej strony
<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>
Testowane w Django 1.9.
Zobacz też: Czy można przekazywać parametry zapytania za pośrednictwem tagu szablonu {% url%} Django?
źródło
W widoku wylogowania, po wylogowaniu użytkownika na stałe, zwróć HttpResponseRedirect (url). Więcej informacji znajdziesz tutaj .
źródło
Z dokumentów możesz napisać własny widok wylogowania (który może być po prostu prostym opakowaniem), nadpisując następną stronę.
źródło
Możesz nawet użyć nazwanych adresów URL dla następnego parametru:
<a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>
źródło
Jeśli chcesz ustawić adres URL przekierowania na poziomie klienta, możesz to zrobić w
urls.py
:(r'^management/logout/$', 'django.contrib.auth.views.logout'),
A potem w szablonie:
<a href="{% url 'django.contrib.auth.views.logout' %}?next=/"> Log out </a>
Gdzie
next
, wskazujesz na właściwy adres URL.źródło
Jeśli zdefiniowałeś własne adresy URL (i nie zaimportowałeś ogólnych adresów auth) i używasz standardowych widoków uwierzytelniania django, możesz je po prostu dodać (template_name = 'example.html') w ścieżce.
path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")
źródło
dodaj to w swoim pliku setting.py projektu
LOGOUT_REDIRECT_URL = '/'
możesz wpisać swój adres URL między '' Używam mojej strony indeksu do domyślnego przekierowania wylogowania
źródło