Django 抛出异常时显示特定模板

Display a specific template when Django raises an exception

在我的 Django 应用程序中,我在多个地方引发了特定的自定义异常 DeserializationError。我的目标是 show/redirect 到一个漂亮的页面,以在出现此错误时向用户显示此错误,包括错误消息。基本上,一个页面说

Something went wrong. Please contact webmaster@email.com.
Error: DeserializationError. Message: SomeModel, "somemodel", does not exist.

这可能吗?我一直在尝试寻找解决方案,但还没有找到任何解决方案。

此类错误很可能会 return HTTP 500 服务器错误。

在 Django 中,您可以编写自己的自定义视图来处理此类情况,并且 return 您可以使用您喜欢的 html 自己的页面。

The 500 (server error) view 解释编写服务器错误视图。如同一页上所述,处理了更多类型的错误。

用于处理 HTTP 500 错误的选项,将其添加到您的设置文件中,

handler500 = 'mysite.views.my_custom_error_view'

并且在视图中,您可以使用

渲染 "error page"
HttpResponseNotFound('<h1>Page not found</h1>')

server_error() 视图将被 handler500 覆盖。