是否可以从中间件渲染模板?
我有一个可以进行一些处理的中间件。在某些情况下,它会引发异常,并且用户会看到我的 500.html
模板 - 正确响应 500 http 状态。
现在,在某些例外情况下,我想呈现与默认 500.html
不同的模板。有可能/如何实现这一目标?
I have a middleware that does some processing. On certain conditions it raises an exception and the user sees my 500.html
template - correctly responding to 500 http status.
Now, on some exceptions I would like to render different template than default 500.html
. Is it possible/how to achieve that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以捕获这些异常并 返回 HttpResponse object 来呈现您的自定义模板。或者也许重定向也是合适的。
You can catch those exceptions and return a HttpResponse object to render your custom template. Or maybe a redirect is also appropriate.
是的……也不是。
您可以渲染任何您想要的内容(您的网络服务器有一个很好的解释如何做到这一点),但用户是否会看到这是他的选择 - 通过他的浏览器设置。您可能会渲染某些内容,但浏览器仍然显示标准错误页面。
Yes... and no.
You can render whatever you want (your web server has a nice explanation how to do that), but whether the user will see that is his choice - through his browser settings. It is possible you render something, but the browser still shows a standard error page.
中间件可能是一个解决方案:
不要忘记在 settings.py 中注册中间件:
A middleware might be a solution:
Don't forget to register the middleware in settings.py: