我在项目的settings.py文件中为DIRS
设置中的TEMPLATES
设置了地址,并且我将APP_DIRS
更改为False
。
现在,所有模板都会运行,但是当我转到localhost:8000/admin
时,会产生一个错误,表示"模板注意到存在"。
/ admin /
上的TemplateDoesNotExist管理员/ index.html中
我不希望APP_DIRS
成为真。
我该如何解决这个问题?
这是设置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
'APP_DIRS': False,
'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 :(得分:1)
如果您不希望APPS_DIR为TRUE,copy templates of admin app to your template directory
。当您将APP_DIR设置为True时,django将检查每个应用程序中名为templates的目录,如果找到则从该目录加载指定的模板。如果找到渲染指定模板,那么django将检查全局模板目录中与app同名的目录。
在您的情况下,APP_DIR设置为False,并且在全局模板文件夹中没有名为admin的目录。因此,从您的虚拟环境的django / contrib / admin /复制模板目录,并将其放在全局模板目录中。我想你的全局模板目录在项目目录中。
os.path.join(BASE_DIR, 'templates'),
HTH:)