我正在尝试构建一个登录页面表单。在我的urls.py中,我将文件链接到内置的Django登录视图,并将路径传递给模板目录。我在登录文件夹里面的模板和login.html文件中有登录文件夹。
(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 :(得分:5)
对于遇到相同问题的任何人,事实证明模板路径不正确。我需要在settings.py中使用'../templates'
而不是'templates'
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__),'../templates'),
)
答案 1 :(得分: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'),
)
根据您的文件夹结构进行相应调整。