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.
Odpowiedzi:
Nowoczesne Django (2017+?) Ma ustawienie o nazwie LOGOUT_REDIRECT_URL
.
Nie musisz niczego nadpisywać ani zawijać.
Zgodnie z dokumentacją możesz po prostu podać next_page
argument do widoku wylogowania.
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/'})
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'
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ę )
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'
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?
W widoku wylogowania, po wylogowaniu użytkownika na stałe, zwróć HttpResponseRedirect (url). Więcej informacji znajdziesz tutaj .
Z dokumentów możesz napisać własny widok wylogowania (który może być po prostu prostym opakowaniem), nadpisując następną stronę.
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.
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")
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