2013-06-23 266 views
2

我想構建一個登錄頁面窗體。在我的urls.py中,我已將該文件鏈接到內置的Django登錄視圖中,並將路徑傳遞給模板目錄。我有登錄文件夾內的登錄文件夾和登錄文件夾內的login.html文件。TemplateDoesNotExist Django錯誤

(r'^login/$', 'django.contrib.auth.views.login', { 
'template_name': 'login/login.html' 
}), 

在settings.py中,我提供了存儲模板的目錄。

TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__),'templates'), 
) 

當我運行的runserver命令,它顯示TemplateDoesNotExist

Exception Type: TemplateDoesNotExist 
Exception Value:login/login.html 
+0

檢查您的模板文件夾(ls -l命令或等效文件)的權限。此外,請點擊https://docs.djangoproject.com/en/dev/ref/templates/api/#loader-types –

+0

你有根目錄應用程序目錄中的模板文件夾 – karthikr

+0

你能否在這裏添加文件夾結構? – PatDuJour

回答

5

對於任何人遇到同樣的問題,原來的模板路徑是不正確的。我需要在settings.py使用'../templates',而不是'templates'

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__),'../templates'), 
) 
1

更好的辦法是在其他設置文件中定義的目錄,以緩解需要在你的模板迪爾斯使用醜陋相對路徑:

// _paths.py 
SETTINGS_DIR = os.path.dirname(__file__) 

// _templates.py 
from settings/_paths.py import SETTINGS_DIR 

TEMPLATE_DIRS = (
    os.path.join(SETTINGS_DIR, 'templates'), 
) 

根據您的文件夾結構進行相應的調整。