2015-11-08 120 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內置了哪些功能? –

相關問題