Django-注销重定向到登录页面

时间:2019-01-02 07:36:44

标签: django django-models django-forms django-templates django-views

我正在尝试在注销后重定向到登录页面,但是会出现一些问题。

urls.py

这是我实际的登出路线,它对我有用,但不会将我重定向到登录页面

path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),

更改logout.html-> login.html

它破坏了会话并注销了用户,但问题是,当我单击注销时,它会重定向到登录页面,但登录输入字段未显示

 path('logout/', auth_views.LogoutView.as_view(template_name='users/login.html'), name='logout'),

如果我正在使用以下路径(路线)。它不会破坏会话或注销

path('login/', auth_views.LogoutView.as_view(template_name='users/login.html'), name='logout'),

3 个答案:

答案 0 :(得分:2)

添加设置文件

LOGOUT_REDIRECT_URL = 'login/'

引用https://docs.djangoproject.com/en/2.1/ref/settings/#logout-redirect-url

还可以更改logout.html-> login.html,请恢复原样

答案 1 :(得分:0)

就我而言,我必须在admin上方列出我的帐户/用户应用程序。

之前

'django.contrib.admin',
'account.apps.AccountConfig'

之后

'account.apps.AccountConfig',
'django.contrib.admin',

答案 2 :(得分:0)

有多种方法可以做到这一点。

在做任何事情之前,请确保导入

from django.contrib.auth import views as auth_views
from django.urls import path, reverse_lazy

然后,你可以这样做

path('/logout', auth_views.logout_then_login, name='logout')

您可以在 settings.py 中定义登录 URL,如提到的@nagesh

还有另一种方法来处理这个问题,特别是当您在多个位置有 logout 按钮并且您希望用户在点击界面中的不同注销按钮后登陆到不同页面时,它会派上用场。

path('logout/', auth_views.LogoutView.as_view(
    next_page=reverse_lazy('Userauth:login') # you can use your named URL here just like you use the **url** tag in your django template
), name='logout'),

我建议您使用reverse_lazy来定义重定向网址,它可以非常轻松地创建动态网址,而且您不必担心是否更改了网址结构。