尝试创建自定义http错误时语法无效

时间:2019-02-04 12:28:56

标签: django python-3.x

我正在尝试制作自定义的http错误页面。和往常一样,django文档确实很难理解。

我正在尽力遵循以下文档:https://docs.djangoproject.com/en/2.1/topics/http/views/#customizing-error-views

所以我设置了DEBUG = False

我已设置ALLOWED_HOSTS = ['*']

在我的views.py中(不在应用程序内部)

def server_error(request, exception):
    return render(request, 'mysite/errors/500.html')

在所有路径之后,在我的urls.py中(不在应用程序内部)。

urlpatterns = [

    path('', views.index, name='index'),

    .......etc

    handler500 = 'mysite.views.server_error'
]

运行服务器时,我在urls.py中的handler500上立即收到错误消息。

handler500 = 'mysite.views.server_error'
           ^
SyntaxError: invalid syntax

我还在“模板/错误”下做了一个简单的“ 500.html”。

我尝试过使用导入处理程序,即使我读到我不应该这样做。 我尝试删除了用于查看等位置的“ mysite”。

我似乎在处理程序上找不到有关此SyntaxError的任何内容?

1 个答案:

答案 0 :(得分:3)

在文件级别将handler500 = 'mysite.views.server_error'放在urlpatterns之外。

urlpatterns = [

    path('', views.index, name='index'),

    .......
]

handler500 = 'mysite.views.server_error'

还在错误视图中添加500响应状态

def server_error(request):
    return render(request, 'mysite/errors/500.html', status=500)