我提供了一个简单的登录功能。对于注销,我尝试使用内置的。这是我的urls.py:
(r'', include('django.contrib.auth.urls')),
这是我的模板文件:
{% if user.is_authenticated %}
logged in as {{ user }}
(<a href="{% url "logout" %}">logout</a>)
{% else %}
我还启用了默认的django管理站点。当我单击logout
时,它会显示管理注销视图。如何通过logout next page属性告诉django要呈现哪个视图?
如果您看到Django管理站点的注销页面而不是您自己的注销页面(your_application / templates / registration / logged_out.html),请检查项目的INSTALLED_APPS设置并确保django.contrib.admin在之后'你的申请'。两个模板都位于相同的相对路径中,Django模板加载器将使用它找到的第一个模板。
在Django 1.6上测试过:
我所做的是将其添加到我的urls.py
中:
(r'^management/logout/$', 'django.contrib.auth.views.logout'),
然后用它:
<a href="{% url "django.contrib.auth.views.logout" %}?next=/">Log out</a>
对于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'),
]
然后在模板中使用它:
<a href="{% url "logout" %}?next=/">logout</a>
更多信息可以在here找到。
根据文档,您可以将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/'})
这些都在手册中得到了很好的解释,有什么具体的你不明白吗?
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.
或者,如果您不想创建自己的视图
https://docs.djangoproject.com/en/dev/topics/auth/default/#django.contrib.auth.views.logout
{% url 'logout' next='/some/url/' %}
我正在通过示例跟随Django经历同样的问题...发现这个网址对我有用
url(r'^logout/$', 'django.contrib.auth.views.logout', { 'template_name': 'account/logout.html',}, name='logout' ),
最简单的解决方案是:
django.contrib.admin
的已安装应用程序下的settings.py
之前。logged_out.html
。您可以将LOGOUT_REDIRECT_URL
放在settings.py
文件中,并使用网址名称重定向到,例如LOGOUT_REDIRECT_URL = 'index'
只需在此替换加载器,即可在“your_progect_apps / templates / registration”中找到auth模板:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'loaders': [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
],
},
},
]
Django v2.1
我很惊讶没有人提到这一点,你可以把它放在你的settings.py中,以便在登录和注销时重定向:
LOGIN_REDIRECT_URL = '/go-here-after-login/'
LOGOUT_REDIRECT_URL = '/go-here-after-logout/'