我正在开发一个包含多个应用程序的Django项目。我希望所有应用程序都有一个常见的404和500错误页面。我该怎么办?
我已经为每个应用实现了单独的错误页面,并且运行正常。但是我想要一个公共页面,该页面应该放在我的主项目文件夹中。
答案 0 :(得分:0)
在您的模板目录中创建模板custom404.html
和custom500.html
将此内容添加到您的urls.py
底部(如果特定于应用程序),或者添加到urls.py
中,其中您包含其他应用程序的网址
handler404 = 'custom_views.handler404'
handler500 = 'custom_views.handler500'
并一次在custom_views
文件的根目录中定义这样的视图
from django.shortcuts import render_to_response
def handler404(request, *args, **kwargs):
response = render_to_response('custom404.html', context = {})
response.status_code = 404
return response
def handler500(request, *args, **kwargs):
response = render_to_response('custom500.html', context={})
response.status_code = 500
return response
这会将您的404,500网址路由到您正在构建模板并呈现模板的模板视图中
答案 1 :(得分:0)
最简单的方法是在templates
中创建一个BASE_DIR
目录,即包含manage.py
的目录
在设置中将路径添加到该目录
TEMPLATES = [
{
...
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
...
]
然后只需在templates
目录中创建错误页面即可。
示例:如果要为错误404创建页面,请在templates
目录内创建一个名为404.html的文件。