当我尝试测试自定义500错误页面时。如果测试有效,我将在错误日志中得到一个空白页,上面没有任何内容(“内部服务器错误”)。如果发生错误,我将获得自定义错误页面。
在视图中:
def handler500(request):
response = render_to_response("500.html")
response.status_code = 500
return response
def my_test_500_view(request):
# Return an "Internal Server Error" 500 response code.
return HttpResponse(status=500)
在Urls.py中:
my path is : path('test500/', views.my_test_500_view, name='test500')
也:
handler500 = 'myapp.views.handler500'
如果我实际上通过从上面的my_test_500_view中删除HttpResponse的导入行来创建错误,则实际上会加载自定义500错误页面,并且我会在服务器上收到此错误,即实际错误。
NameError: name 'HttpResponse' is not defined
我的测试有什么问题,它返回空白页。我的500页纸真的有效吗?我认为它无法正常运行,因为我收到了来自Google搜索的关于500错误页面失败的电子邮件警告,并且经常收到此错误:
TypeError: view must be a callable or a list/tuple in the case of include().
请帮助,这是怎么回事。
答案 0 :(得分:1)
返回HttpResponse(status=500)
不会导致Django调用handler500
视图,它只会返回一个空白页(您未在HttpResponse
中指定任何内容)并将状态设置为500响应头。
如果您要测试handler500
,请在测试视图中仅raise
个例外。任何例外都可以。