首页 > 解决方案 > 自定义错误页面出现 django 500 错误而不是 404

问题描述

这是我的意见.py

def handler_404(request):
    return render(request, '404.html', status=404)

def handler_500(request):
    return render(request, '500.html', status=404)

这是我的 urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from finish.views import handler_404,handler_500
from django.conf.urls import (
                handler400,
                handler403,
                handler404,
                handler500
            )


urlpatterns = [
    path('', include("scrap.urls")),
    path('', include("details.urls")),
    path('', include("finalize.urls")),
    path('', include("finish.urls")),
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

handler404 = handler_404
handler500 = handler_500

当我输入一些不存在的网址时,它会出现“服务器错误(500)”而不是“找不到页面(404)”错误。

请看看这个....

标签: django

解决方案


老问题,但不适将您重定向到 Nico 的答案。我花了太多时间找到那个。

我正在运行 django 3.0.2,总结起来我这样做了: prodject - urls.py

from django.conf.urls import url, include, handler404
import app.views

urlpatterns = [
.
.
.
]
handler404 = app.views.error_404

应用程序-views.py

.
.
.
def error_404(request, exception):
    return render(request,'app/404.html', status = 404)

看了很多教程,发现大部分都省略了异常

然后在你的 app/templates/app 文件夹中放一个 404.html

希望有人觉得这很有用..


推荐阅读