Django中根据应用不同设置不同的404页面

6 投票
2 回答
2047 浏览
提问于 2025-04-15 19:35

我们正在开发一个使用Django的项目,这个项目包含多个应用程序。它们共享同一个数据库,但每个应用的目标用户却非常不同,主要分为管理员和普通用户。每个应用的界面设计也各不相同。

我需要创建一个404错误页面,但似乎只能为整个项目创建一个404页面。我希望能根据用户请求的不同应用(也就是不同的URL)来显示不同的404模板。

对于一些明显无效的URL,处理起来比较简单,但在代码中还有其他方式会引发异常,比如调用get_object_or_404

有没有人知道怎么做到这一点?

2 个回答

4

通过设置 handler404 来编写一个 404 页面,而不仅仅是一个模板。在这个视图中,尝试根据网址来判断应该显示哪个 404 页面,并将其呈现出来。

4

其实并不是说你只能为整个应用创建一个404页面。文档里讲了怎么创建一个特定的404处理视图,这个视图可以查看request.path的值,来判断用户请求的是哪个网址,然后显示相应的模板。

撰写回答