Chỉ tự hỏi nơi tôi có thể đặt url để chuyển hướng đến sau khi đăng xuất. Tôi biết bạn có thể đặt url đăng nhập. Tôi muốn chuyển hướng đến trang chủ của mình.
Câu trả lời:
Modern Django (2017+?) Có một cài đặt được gọi là LOGOUT_REDIRECT_URL
.
Bạn không cần phải ghi đè hoặc bọc bất cứ thứ gì.
Theo tài liệu, bạn chỉ có thể cung cấp next_page
đối số cho chế độ xem đăng xuất.
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/'})
Một cách dễ dàng hơn:
Thêm thông số 'tiếp theo' vào url yêu cầu đăng xuất của bạn. Ví dụ:
<a href="{% url 'auth_logout' %}?next=/path_to_the_page"> Logout</a>
Sau đó, chế độ xem đăng xuất sẽ thực hiện thủ thuật cho bạn.
Đối với chuyển hướng sau khi đăng nhập, bạn chỉ cần đặt nó trong settings.py:
LOGIN_REDIRECT_URL = '/path_to_the_page'
LOGIN_URL = '/path_to_the_page'
base.html
và quên nó đi. : D (Tôi đang sử dụng cổ điển Django trên Debian Jessie:. S để các thiết lập mới không có sẵn)
Kể từ Django 1.10, bạn có thể xác định một LOGOUT_REDIRECT_URL
( xem tài liệu )
Bạn có thể chuyển hướng người dùng ở bất kỳ đâu bằng cách sử dụng LOGOUT_REDIRECT_URL trong tệp setting.py của mình
LOGOUT_REDIRECT_URL = 'url name to redirect'
Chuyển hướng đến trang hiện tại
<a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a>
Đã thử nghiệm trong Django 1.9.
Xem thêm: Có thể chuyển các tham số truy vấn qua thẻ mẫu {% url%} của Django không?
Trong chế độ xem đăng xuất của bạn, sau khi bạn đăng xuất người dùng tốt, hãy trả về HttpResponseRedirect (url). Vui lòng xem tại đây để biết thêm chi tiết .
Bạn thậm chí có thể sử dụng các url được đặt tên cho thông số tiếp theo của mình:
<a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>
Nếu bạn muốn đặt URL chuyển hướng ở cấp máy khách, bạn có thể thực hiện điều đó trong urls.py
:
(r'^management/logout/$', 'django.contrib.auth.views.logout'),
Và sau đó trong mẫu:
<a href="{% url 'django.contrib.auth.views.logout' %}?next=/">
Log out
</a>
Ở đâu next
, bạn trỏ đến đúng URL.
Nếu bạn đã xác định các url của riêng mình (và không nhập url xác thực chung) và đang sử dụng các chế độ xem xác thực django tiêu chuẩn, bạn chỉ cần thêm chúng (template_name = 'example.html') vào đường dẫn.
path('logout/',auth_views.LogoutView.as_view(template_name='homepage.html'),name="logout")
thêm cái này vào tệp setting.py dự án của bạn
LOGOUT_REDIRECT_URL = '/'
bạn có thể viết URL của mình giữa '' Tôi sử dụng trang chỉ mục của mình cho chuyển hướng mặc định đăng xuất