Django 500错误来自而不是404的自定义错误页面

时间:2018-10-27 19:38:58

标签: django

这是我的views.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)”错误。

请看看这个。...

1 个答案:

答案 0 :(得分:0)

老问题了,但是请您改写Nico的answer。我花了太多的时间去找到那个。

我正在运行Django 3.0.2,总而言之,我做到了: 产品-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)

在阅读了许多教程之后,我发现其中大多数都忽略了例外情况

然后将404.html放入您的app / templates / app文件夹

希望有人觉得这有用。