Oturumu kapattıktan sonra yönlendirmek için url'yi nereye ayarlayabileceğimi merak ediyorum. Giriş url'sini ayarlayabileceğinizi biliyorum. Ana sayfama yeniden yönlendirmek istiyorum.
Yanıtlar:
Modern Django (2017+?) Adlı bir ayar vardır LOGOUT_REDIRECT_URL
.
Herhangi bir şeyin üzerine yazmanıza veya sarmanıza gerek yoktur.
Dokümanlara göre next_page
, çıkış görünümüne argüman sağlayabilirsiniz .
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/'})
Daha kolay bir yol:
Çıkış isteği url'nize 'sonraki' parametresini ekleyin. Örneğin:
<a href="{% url 'auth_logout' %}?next=/path_to_the_page"> Logout</a>
Daha sonra çıkış görünümü sizin için hile yapacak.
Giriş sonrası yeniden yönlendirme için, bunu settings.py içinde kolayca ayarlayabilirsiniz:
LOGIN_REDIRECT_URL = '/path_to_the_page'
LOGIN_URL = '/path_to_the_page'
base.html
unutuyorum. : D (Debian Jessie: S üzerinde eski Django kullanıyorum, bu yüzden yeni ayarlar mevcut değil.)
Django 1.10'dan beri, bir tanımlayabilirsiniz LOGOUT_REDIRECT_URL
( dokümanlara bakın )
Setting.py dosyanızda LOGOUT_REDIRECT_URL kullanarak kullanıcıyı istediğiniz yere yönlendirebilirsiniz.
LOGOUT_REDIRECT_URL = 'url name to redirect'
Mevcut sayfaya yönlendir
<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>
Django 1.9'da test edilmiştir.
Ayrıca bkz: Sorgu parametrelerini Django'nun {% url%} şablon etiketiyle geçirmek mümkün mü?
Oturumu kapatma görünümünüzde, kullanıcının oturumunu tamamen kapattıktan sonra, HttpResponseRedirect (url) döndür. Daha fazla ayrıntı için lütfen buraya bakın .
Yönlendirme URL'sini istemci düzeyinde ayarlamak istiyorsanız, bunu şu şekilde yapabilirsiniz urls.py
:
(r'^management/logout/$', 'django.contrib.auth.views.logout'),
Ve sonra şablonda:
<a href="{% url 'django.contrib.auth.views.logout' %}?next=/">
Log out
</a>
Nerede, next
doğru URL'yi gösteriyorsunuz.
Kendi url'lerinizi tanımladıysanız (ve genel kimlik doğrulama url'lerini içe aktarmadıysanız) ve standart django kimlik doğrulama görünümlerini kullanıyorsanız, bunları yola (template_name = 'example.html') ekleyebilirsiniz.
path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")
bunu proje setting.py dosyanıza ekleyin
LOGOUT_REDIRECT_URL = '/'
URL'nizi '' Çıkış varsayılan yönlendirmesi için dizin sayfamı kullanıyorum