我提供了一个简单的登录功能.对于注销,我尝试使用内置的.这是我的urls.py:
(r'', include('django.contrib.auth.urls')),
Run Code Online (Sandbox Code Playgroud)
这是我的模板文件:
{% if user.is_authenticated %}
logged in as {{ user }}
(<a href="{% url "logout" %}">logout</a>)
{% else %}
Run Code Online (Sandbox Code Playgroud)
我还启用了默认的django管理站点.单击时logout,它会显示管理注销视图.如何通过logout next page属性告诉django要呈现哪个视图?
小智 49
如果您看到Django管理站点的注销页面而不是您自己的注销页面(your_application/templates/registration/logged_out.html),请检查项目的INSTALLED_APPS设置并确保django.contrib.admin在之后'你的申请'.两个模板都位于相同的相对路径中,Django模板加载器将使用它找到的第一个模板.
Men*_*nda 15
在Django 1.6上测试过:
我做的是将其添加到我的urls.py:
(r'^management/logout/$', 'django.contrib.auth.views.logout'),
Run Code Online (Sandbox Code Playgroud)
然后用它:
<a href="{% url "django.contrib.auth.views.logout" %}?next=/">Log out</a>
Run Code Online (Sandbox Code Playgroud)
对于next参数,您指向正确的URL.
在Django 2.1上测试过
附加urlpatterns于urls.py:
from django.contrib.auth import views as auth_views
urlpatterns = [
path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]
Run Code Online (Sandbox Code Playgroud)
然后在模板中使用它:
<a href="{% url "logout" %}?next=/">logout</a>
Run Code Online (Sandbox Code Playgroud)
更多信息可以在这里找到.
mar*_*rkh 11
最简单的解决方案是:
确保您的应用来之前, django.contrib.admin在安装的应用程序下settings.py。
确保您的模板名为logged_out.html.
cat*_*ine 10
根据文档,您可以将log_page参数提供给注销视图. https://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.views.logout
(r'^logout/$', 'django.contrib.auth.views.logout',
{'next_page': '/logged_out/'})
Run Code Online (Sandbox Code Playgroud)
说明书上都解释得很清楚了,还有什么不明白的地方吗?
https://docs.djangoproject.com/en/dev/topics/auth/default/#how-to-log-a-user-out
from django.contrib.auth import logout
def logout_view(request):
logout(request)
# Redirect to a success page.
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想创建自己的视图
https://docs.djangoproject.com/en/dev/topics/auth/default/#django.contrib.auth.views.logout
{% url 'logout' next='/some/url/' %}
Run Code Online (Sandbox Code Playgroud)