我今天面临一个奇怪的问题。我正在获取TemplateDoesNotExist(请参阅第一张图片)但当我尝试使用debug-toolbar调试模板源时,它正确显示模板路径(参见图像2)更奇怪的是,当我点击特定模板按钮时,它正确显示模板的来源。
这是我第一次遇到这些问题。有人可以解释为什么我收到这个错误。
编辑:添加settings.py文件(相关部分)
SETTINGS_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(SETTINGS_PATH, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
由于
答案 0 :(得分:13)
我和Django 1.9有类似的问题。我刚刚更改了settings.py文件的 TEMPLATES 中的 DIRS 。
试试这个
'DIRS': [os.path.join(BASE_DIR,'templates')],
而不是你的
'DIRS':[os.path.join(SETTINGS_PATH,'templates')],
尝试使用此代码而不是 TEMPLATES
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},]
答案 1 :(得分:5)
我今天升级到1.9,突然遇到了同样的问题。对我来说,似乎添加" ' APP_DIRS':是的,"模板做的伎俩(我通过添加/删除它来切换几次,它工作/失败)。
那么APP_DIRS做了什么:如果我正确理解文档(https://docs.djangoproject.com/en/1.9/ref/templates/api/),它会读取默认的Django模板(如果为True)。基本上,95%的项目应该是这种情况。