python - 如何覆盖 Django 中的 handler404 和 handler505 错误?
问题描述
如何覆盖 django 中的 handler404 和 handler505 错误?我已经在我的 settings.py中将DEBUG TRUE更改为 False。
这是我的意见.py
def Errorhandler404(request):
return render(request, 'customAdmin/my_custom_page_not_found_view.html', status=404)
def Errorhandler500(request):
return render(request, 'customAdmin/my_custom_error_view.html', status=500)
这是我的 urls.py
handler404 = customAdmin.views.Errorhandler404
handler500 = customAdmin.views.Errorhandler500
urlpatterns = [
.....
]
这是错误
这是我遵循的文档
https://micropyramid.com/blog/handling-custom-error-pages-in-django/
解决方案
您需要定义一个将exception
参数也考虑在内的函数,如以下文档handler404
中所述:
handler404
如果没有任何 URL 模式匹配,则应调用的可调用或表示视图的完整 Python 导入路径的字符串。
默认情况下,这是 django.views.defaults.page_not_found()。如果您实现自定义视图,请确保它接受
request
和exception
参数并返回一个HttpResponseNotFound
.
您可以忽略该参数,或在响应中打印有关异常的信息:
def Errorhandler404(request, exception):
return render(request, 'customAdmin/my_custom_page_not_found_view.html', status=404)
def Errorhandler500(request):
return render(request, 'customAdmin/my_custom_error_view.html', status=500)
通常ErrorHandler404
应该返回一个HttpResponseNotFound
响应 [Django-doc]:
from django.http import HttpResponseNotFound
from django.template import loader
def Errorhandler404(request, exception):
content = loader.render_to_string('customAdmin/my_custom_page_not_found_view.html', {}, request)
return HttpResponseNotFound(content)
ErrorHandler500
应该返回一个对象HttpResponseServerError
[Django-doc]:
from django.http import HttpResponseServerError
from django.template import loader
def Errorhandler500(request):
content = loader.render_to_string('customAdmin/my_custom_page_not_found_view.html', {}, request)
return HttpResponseServerError(content)
推荐阅读
- c - 用c制作计算器,如何计算2个以上的数字
- javascript - HighCharts 是否可以将对象传递给仪表图的指针配置?
- r - 对子集执行任务而不是过滤掉
- c# - Xamarin Forms:从饼图中删除或隐藏 LinearAxis
- excel - Excel:在矩阵中搜索具有两个维度范围的值
- android - 如何在 android 中刷新位置变化地图(如 Swiggy/uber App)
- python - 测试功能的正确方法
- raku - 如何在 Perl 6 中实现 Python 的 os.urandom 方法?
- javascript - 如何获取数据快照,然后在 firebase 云函数 http 请求中更新数据库
- javascript - React-redux - 控制台给出“TypeError:props.fetchSearchResults 不是函数”