我是django的新手,通过做小应用程序来学习。 在views.py中,我有意包含了一个不存在的模板文件(.html)。
t = get_template('current_datetimeP.html')
在setting.py中TEMPLATE_DIRS =( “d:/ Django_Code / mysite的/模板/”, )
我在/ time /
收到此错误 TemplateDoesNotExistDjango尝试按以下顺序加载这些模板: 使用loader django.template.loaders.filesystem.Loader: D:\ Django_Code \ mysite \ templates \ current_datetimeP.html(文件不存在)
因为我在settings.py中包含了D:\ Django_Code \ mysite \ templates \,所以Django在那里很好但是跟着怎么样
我也得到了这个
使用loader django.template.loaders.app_directories.Loader: C:\ Python27 \ lib \ site-packages \ django \ contrib \ auth \ templates \ current_datetimeP.html(文件不存在)
为什么 Django在这里查看* C:\ Python27 \ lib \ site-packages \ django \ contrib \ auth \ templates * 。 它是搜索模板的默认位置吗?
还有一件事,很明显Django正在查看上面的目录。我们可以在那里放置模板文件,而不是放入应用程序目录。 (虽然这不是一个好习惯)?
答案 0 :(得分:2)
模板加载由settings.py中的TEMPLATE_LOADERS设置控制,通常看起来像这样:
TEMPLATE_LOADERS = (
'django.template.loaders.app_directories.Loader',
'django.template.loaders.filesystem.Loader',
)
app目录加载程序在设置中INSTALLED_APPS中列出的任何应用程序的“templates”文件夹中查找模板。
文件系统加载程序尝试从设置文件中TEMPLATE_DIRS下列出的完全限定目录路径名称加载模板。
如果您希望提供文件系统加载程序首选项,请将它放在TEMPLATE_LOADERS设置中的应用程序目录加载器之前。如果你想关闭app目录加载,请用#(或从元组中删除它)注释掉它。
答案 1 :(得分:0)
尝试使用settings.py location
创建的模板路径import os
DIRNAME = os.path.dirname(__file__)
TEMPLATE_DIRS = (
os.path.join(DIRNAME, "templates"),
)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source',
)