2015-11-08 143 views
0

我用allauth模块在django上安装了一个非常基础的项目。它运作良好...除了我有一个404页面,当我尝试使用http://localhost:8000/accounts/logout/注销。如何在django/allauth注销后将用户重定向回登录页面?

的urls.py

urlpatterns = [ url(r'^accounts/', include('allauth.urls')), url(r'^aboutus/$', TemplateView.as_view(template_name="aboutus.html"), name="aboutus"), url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)),
]

和settings.py我设置ACCOUNT_LOGOUT_ON_GET= True避免注销确认。

我的目标是设置路径:登录页面 - > aboutus:点击注销按钮 - >登录页面。

我在互联网上阅读了很多东西,但它仍然无法正常工作。

请帮

+0

看起来你可以传递参数“redirect_field_value”从注销按钮上的点击操作指定重定向字段! – rfkortekaas

回答

0

如果我理解你的权利,对官方docs您的问题的答案。基本上你只需要编写自己的适配器,它可能看起来像:在设置文件

# project/settings.py: 
ACCOUNT_ADAPTER = 'project.users.adapter.MyAccountAdapter' 

# project/users/adapter.py: 
from django.conf import settings 
from allauth.account.adapter import DefaultAccountAdapter 

class MyAccountAdapter(DefaultAccountAdapter): 

    def get_login_redirect_url(self, request): 
     path = "/accounts/{username}/" 
     return path.format(username=request.user.username) 
+0

谢谢,我测试与我得到的错误:没有模块命名users.adapter – alvaro562003

+0

@ alvaro562003,我的代码只是一个例子,它不会与您的项目。您必须编写自己的适配器并设置您的应用程序和项目名称。我添加一个链接,你可以找到如何做到这一点。 – pythad

+0

是的,谢谢你,我改编了它,基本上我把get_login_redirect_url改成了get_logout_redirect_url,我设置了ACCOUNT_ADAPTER ='mysite users.adapter.MyAccountAdapter'。 – alvaro562003

5

解决方案:ACCOUNT_LOGOUT_REDIRECT_URL =“/帐号/登录”

+0

这似乎工作,但我不明白为什么它的作品。 Allauth内置了哪些功能? –

相关问题