TemplateDoesNotExist 在项目文件夹 django 1.8
TemplateDoesNotExist in project folder django 1.8
我已经构建了我的应用程序 Django (Django 1.8),如下所示。
当我在我的应用程序的 base.html 中尝试 app1 中的模板或 app2 扩展 base.html 时,出现此错误。
TemplateDoesNotExist at /
base.html
Error during template rendering
In template /myProject/project_folder/app1/templates/app1/base.html, error at line 1
{% extends "base.html" %}
这是我的项目结构
/projekt_folder
template
base.html
/app1
/template
base.html <-- {% extends "base.html" %}
/app2
/template
base.html <-- {% extends "base.html" %}
您需要告诉 Django 您的模板文件夹 (projekt_folder/template
) 的附加位置是什么,它不在已安装的应用程序下,在您的设置文件顶部添加以下行:
import os
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
然后在TEMPLATES
设置var中设置DIRS
:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(PACKAGE_ROOT, 'template')],
'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',
],
},
},
]
Django 3.1.5:
您需要通过在 DIRS 中添加它的路径来告诉 Django 模板引擎在哪里寻找您的 base.html 模板:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# Build paths inside the project like this: BASE_DIR / 'subdir'.
# BASE_DIR in your case is '/projekt_folder'
'DIRS': [
BASE_DIR / 'template'
],
'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',
],
},
},]
我已经构建了我的应用程序 Django (Django 1.8),如下所示。 当我在我的应用程序的 base.html 中尝试 app1 中的模板或 app2 扩展 base.html 时,出现此错误。
TemplateDoesNotExist at /
base.html
Error during template rendering
In template /myProject/project_folder/app1/templates/app1/base.html, error at line 1
{% extends "base.html" %}
这是我的项目结构
/projekt_folder
template
base.html
/app1
/template
base.html <-- {% extends "base.html" %}
/app2
/template
base.html <-- {% extends "base.html" %}
您需要告诉 Django 您的模板文件夹 (projekt_folder/template
) 的附加位置是什么,它不在已安装的应用程序下,在您的设置文件顶部添加以下行:
import os
PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__))
然后在TEMPLATES
设置var中设置DIRS
:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(PACKAGE_ROOT, 'template')],
'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',
],
},
},
]
Django 3.1.5: 您需要通过在 DIRS 中添加它的路径来告诉 Django 模板引擎在哪里寻找您的 base.html 模板:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# Build paths inside the project like this: BASE_DIR / 'subdir'.
# BASE_DIR in your case is '/projekt_folder'
'DIRS': [
BASE_DIR / 'template'
],
'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',
],
},
},]