首页 > 解决方案 > 尝试创建自定义 http 错误时语法无效

问题描述

我正在尝试制作自定义 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 的信息?

标签: djangopython-3.x

解决方案


放在文件级别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)

推荐阅读