Hanya ingin tahu di mana saya dapat menyetel url untuk dialihkan ke setelah logout. Saya tahu Anda dapat menyetel url login. Saya ingin mengalihkan ke beranda saya.
Jawaban:
Modern Django (2017+?) Memiliki pengaturan yang disebut LOGOUT_REDIRECT_URL
.
Anda tidak perlu menimpa atau membungkus apa pun.
Menurut dokumen, Anda bisa memasukkan next_page
argumen ke tampilan logout.
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/'})
Satu cara yang lebih mudah:
Tambahkan parameter 'berikutnya' ke url permintaan keluar Anda. Sebagai contoh:
<a href="{% url 'auth_logout' %}?next=/path_to_the_page"> Logout</a>
Kemudian tampilan logout akan melakukan triknya untuk Anda.
Untuk after-login-redirect, Anda cukup mengaturnya di settings.py:
LOGIN_REDIRECT_URL = '/path_to_the_page'
LOGIN_URL = '/path_to_the_page'
base.html
dan melupakannya. : D (Saya menggunakan Django antik pada Debian Jessie: S jadi pengaturan baru tidak tersedia.)
Sejak Django 1.10, anda dapat mendefinisikan a LOGOUT_REDIRECT_URL
( lihat dokumen )
Anda dapat mengarahkan pengguna ke mana saja dengan menggunakan LOGOUT_REDIRECT_URL di file setting.py Anda
LOGOUT_REDIRECT_URL = 'url name to redirect'
Alihkan ke halaman saat ini
<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>
Diuji di Django 1.9.
Lihat juga: Apakah mungkin untuk melewatkan parameter kueri melalui tag cetakan {% url%} Django?
Dalam tampilan logout Anda, setelah Anda logout pengguna untuk selamanya, kembalikan HttpResponseRedirect (url). Silakan lihat di sini untuk lebih jelasnya .
Dari dokumen Anda dapat menulis tampilan logout Anda sendiri (yang dapat berupa pembungkus sederhana) dengan menimpa halaman 'berikutnya'.
Jika Anda ingin mengatur redirection URL pada level klien, Anda dapat melakukannya di urls.py
:
(r'^management/logout/$', 'django.contrib.auth.views.logout'),
Dan kemudian di template:
<a href="{% url 'django.contrib.auth.views.logout' %}?next=/">
Log out
</a>
Di mana next
, Anda mengarah ke URL yang benar.
Jika Anda telah menentukan url Anda sendiri (dan tidak mengimpor url autentikasi generik) dan menggunakan tampilan autentikasi django standar, Anda cukup menambahkan (template_name = 'example.html') di jalur.
path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")
tambahkan ini ke dalam proyek Anda file setting.py
LOGOUT_REDIRECT_URL = '/'
Anda dapat menulis URL Anda di antara '' Saya menggunakan halaman indeks saya untuk pengalihan default logout