แค่สงสัยว่าฉันจะตั้งค่า url ให้เปลี่ยนเส้นทางไปหลังออกจากระบบได้ที่ไหน ฉันรู้ว่าคุณสามารถตั้งค่า URL เข้าสู่ระบบได้ ฉันต้องการเปลี่ยนเส้นทางไปที่หน้าแรกของฉัน
แค่สงสัยว่าฉันจะตั้งค่า url ให้เปลี่ยนเส้นทางไปหลังออกจากระบบได้ที่ไหน ฉันรู้ว่าคุณสามารถตั้งค่า URL เข้าสู่ระบบได้ ฉันต้องการเปลี่ยนเส้นทางไปที่หน้าแรกของฉัน
คำตอบ:
Modern 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 คุณสามารถกำหนดLOGOUT_REDIRECT_URL
( ดูเอกสาร )
คุณสามารถเปลี่ยนเส้นทางผู้ใช้ได้ทุกที่โดยใช้ LOGOUT_REDIRECT_URL ในไฟล์ setting.py ของคุณ
LOGOUT_REDIRECT_URL = 'url name to redirect'
เปลี่ยนเส้นทางไปยังหน้าปัจจุบัน
<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>
ทดสอบใน Django 1.9
ดูเพิ่มเติม: เป็นไปได้ไหมที่จะส่งพารามิเตอร์การค้นหาผ่านแท็กเทมเพลต {% url%} ของ Django
ในมุมมองการออกจากระบบของคุณหลังจากที่คุณออกจากระบบผู้ใช้แล้วให้ส่งคืน HttpResponseRedirect (url) โปรดดูรายละเอียดเพิ่มเติมที่นี่
คุณยังสามารถใช้ชื่อ urls สำหรับพารามิเตอร์ถัดไปของคุณ:
<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 มาตรฐานคุณสามารถเพิ่ม (template_name = 'example.html') ในเส้นทางได้
path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")
เพิ่มสิ่งนี้ในไฟล์ setting.py โครงการของคุณ
LOGOUT_REDIRECT_URL = '/'
คุณสามารถเขียน URL ของคุณระหว่าง '' ฉันใช้หน้าดัชนีของฉันสำหรับการออกจากระบบการเปลี่ยนเส้นทางเริ่มต้น