2016-02-02 117 views
6

我正在使用內置的django登錄和註銷。在我的Project/urls.py中,我已經爲登錄和註銷添加了url。爲什麼在django註冊中不會覆蓋logged_out.html?

from django.conf.urls import include, url 
from account import views 
from django.contrib.auth import views as auth_views 
from django.contrib import admin 
urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^$',views.index,name='Index'), 
    url(r'^accounts/login/$',auth_views.login,name='login'), 
    url(r'^accounts/logout/$',auth_views.logout,name='logout'), 
    url(r'^accounts/register/$',views.register,name='register'), 
    url(r'^accounts/profile/$',views.profile,name='profile'),  
] 

我在我的帳戶應用程序文件夾內有模板文件夾。我有這樣

account 
    -templates 
     -registration 
      -login.html 
      -logged_out.html 
      -register.html 
     -rest_html_files 
-rest files 

我讀過Django文檔這不能不說的登錄()默認的模板是註冊/ login.html的這是工作在我的項目和註銷精細的目錄結構()默認的模板是註冊/ logged_out.html如果沒有提供任何參數,但是每當它被註銷時(它具有href = {%url'註銷'%}),它會重定向到管理員註銷頁面,而不是我的自定義註銷頁面。 什麼可能是錯誤的?

+0

你能發佈視圖的代碼嗎? –

+1

由於我使用的是django身份驗證,因此無需在此情況下執行任何操作。 – rdRahul

回答

10

django.contrib.admin應用程序也有一個registration/logged_out.html模板。

爲確保您的賬戶「應用程序模板,使用,確保它是以上的INSTALLED_APPS設置「django.contrib.admin」。

INSTALLED_APPS = (
    'account', 
    ... 
    'django.contrib.admin', 
    ... 
) 

的應用程序模板加載器穿過應用在INSTALLED_APPS,以及每個應用程序的模板目錄中,直到它找到一個匹配。因此,如果管理員超出了您的應用程序,那麼Django將使用來自管理員的模板而不是您的應用程序。

+1

謝謝你的回答@Alasdair,但我已經砸了幾個小時才問這個問題,我的應用程序在安裝的應用程序中。爲了您的評論我已經知道next_page屬性,我想問的是爲什麼,如果登錄被覆蓋,那麼爲什麼註銷不是以同樣的方式工作。 – rdRahul

+0

在'INSTALLED_APPS'中放入您的應用程序是不夠的。它需要**上面**'django.contrib.admin'。您的登錄模板目前使用,因爲管理應用程序沒有'registration/login.html'模板。 – Alasdair

+0

感謝!!!做了trick.sorry,我以前不明白,對不起,他們不讓我upvote你的答案.. ;-) – rdRahul

相關問題