Django Custom 404处理程序

时间:2016-11-07 16:57:11

标签: python django

我们最近升级到Django 1.10,我们在现场网站上收到此错误:

builtins:TypeError custom_404()得到了一个意外的关键字参数'exception'

代码如下:

urls.py

urlpatterns = [ ... ]
handler404 = global_views.custom_404
handler500 = global_views.custom_500

global_views.py

def custom_404(request, exception, template_name='404.html'):
    return page_not_found(request, exception, template_name=template_name)   

def custom_500(request, template_name='500.html'):
    return server_error(request, template_name=template_name) 

我们尝试过此视图的多种变体,但都会导致该错误。

出了什么问题?

1 个答案:

答案 0 :(得分:1)

server_error视图不应将exception作为参数。它的签名是

defaults.server_error(request, template_name='500.html')

如果您所做的只是致电custom_404,则不清楚为什么定义了page_not_found视图。在page_not_found视图中调用custom_500非常奇怪。