如何configuration在Django注销后redirect的位置?

只是想知道在哪里我可以设置URLlogin后redirect到。 我知道你可以设置loginurl。 我想redirect到我的主页。

你不需要覆盖或包装任何东西。

根据文档,您可以将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/'}) 

一个简单的方法:

将“下一个”参数添加到注销请求url。 例如:

 <a href="{% url 'auth_logout' %}?next=/path_to_the_page"> Logout</a> 

然后,注销视图将为你做的伎俩。

对于login后redirect,您可以简单地将其设置在settings.py中:

 LOGIN_REDIRECT_URL = '/path_to_the_page' LOGIN_URL = '/path_to_the_page' 

由于Django 1.10,你可以定义一个LOGOUT_REDIRECT_URL ( 请参阅文档 )

redirect到当前页面

 <a href="{% url 'logout' %}?next={{ request.path | urlencode }}">{% trans "Logout" %}</a> 

在Django 1.9testing

另请参见: 是否有可能通过Django的{%url%}模板标签传递查询参数?

在注销视图中,在退出用户之后,返回HttpResponseRedirect(url)。 请在这里看到更多的细节 。

从文档你可以写你自己的注销视图(可以只是简单的包装)覆盖“下一页”。

如果要在客户端级别设置redirectURL,可以在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:

 <a href="{% url 'auth_logout' %}?next={% url 'homepage' %}"> Logout</a>