【发布时间】:2017-10-16 21:13:45
【问题描述】:
我为我的 Django 应用程序编写了自定义 404/500 页面,它们工作正常,除非我从我的视图中显式返回状态码为 500 或 404 的响应。
在后一种情况下,我会得到响应中返回的任何内容。我知道我可以在这些响应中呈现我的 404 和 500 模板,但是有没有办法自动使用这些 404/500 页面?
为了说明我的问题:
当请求被发送到“http://my.host/pattern_not_matching_anything”时,我的 404.html 页面就好了。
但是,当在http://my.host/valid_pattern/invalid_parameter"处收到无效请求时,即调用我的视图时,我在数据库中查找参数并没有找到它,因此我返回了适当的响应:
return HttpResponse("not found", status_code=404)
返回的 HTML 页面仅包含“未找到”,而我希望它呈现我自定义的完整 404 模板。
【问题讨论】:
-
另一种方法是返回对内置错误视图之一的调用;例如
return django.views.defaults.server_error(request).
标签: python django http-status-code-404