【发布时间】:2016-10-29 10:21:27
【问题描述】:
据我在 Django 文档中看到的,要显示自定义 404 页面,您只需将 404.html 放在根模板目录中即可。
所以我的项目结构是:
django_project
|_ config
| |_ settings.py
| |_ urls.py
|
|_ templates
|_ base.html
|_ index.html
|_ 404.html
在 settings.py 我有以下模板设置:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ["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',
'contact.views.contact_info',
],
},
},
]
对于'DIRS' 参数,我也使用了os.path.join(BASE_DIR, "templates")。这具有完全相同的结果。
我也用过
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, "templates"),
)
这会导致弃用警告。
在 urls.py 中我也没有做任何特别的事情:
from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView
urlpatterns = [
url(r'^$', TemplateView.as_view(template_name="index.html"), name="index"),
url(r'^admin/', admin.site.urls),
]
模板继承在其他应用程序中完美运行,因此找到了模板目录。
在设置中:DEBUG=False
当我输入错误的 url 时,我会得到 Django 默认的“未找到”页面。
我在这里错过了什么?
【问题讨论】:
-
嗯,缺少的一件事是对实际问题的任何描述。会发生什么?