【发布时间】:2018-09-03 01:15:41
【问题描述】:
我在 django 中制作了自定义 404 页面。我正在尝试故意获取 404 错误页面。
myproject/urls.py:
from website.views import customhandler404, customhandler500, test
urlpatterns = [
re_path(r'^admin/', admin.site.urls),
re_path(r'^test/$', test, name='test'),
]
handler404 = customhandler404
handler500 = customhandler500
网站/views.py
def customhandler404(request):
response = render(request, '404.html',)
response.status_code = 404
return response
def customhandler500(request):
response = render(request, '500.html',)
response.status_code = 500
return response
def test(request):
raise Http404('hello')
但是当我去 127.0.0.1:8000/test/ 时,它似乎返回了500.html
终端说:
[24/Mar/2018 22:32:17] "GET /test/ HTTP/1.1" 500 128
如何故意得到 404 页面?
【问题讨论】:
-
如果您查看日志/管理员电子邮件或启用调试,回溯应该会告诉您 500 错误的原因。也许你忘记了导入
from django.http import Http404。请注意,默认的 404 和 500 处理程序已经分别呈现404.html和500.html模板,因此您可以删除自定义处理程序。不建议对 500 页面使用render,因为在尝试渲染500.html模板时可能会重复该错误。 -
我刚刚编辑了我的答案,希望它对你仍然有用。
标签: django