2013-06-23 238 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'), 
) 

根据您的文件夹结构进行相应的调整。