【发布时间】:2018-02-01 10:16:23
【问题描述】:
在我的 Django 项目中,有几个 django 应用程序。我想编写自定义错误页面,并且我希望它们包含指向发生错误的应用程序的正确链接,例如,如果在我的应用程序a 中发生 500 错误,我希望错误页面包含指向/a/index.html,如果应用程序b 中发生服务器错误,我希望页面包含指向/b/index.html 的链接。而且我只想为每个错误页面文件创建一个副本,这意味着我需要从模板中获取应用程序的名称。
为此,我编写了一个自定义上下文处理器,将app_name 变量添加到模板中。我在正常页面上对其进行了测试,但是当我继续在错误页面上对其进行测试时,结果发现上下文处理器没有触发。
同样,我写了一个模板标签app_aware_url,它采用url模式的名称并尝试解决它,但同样,对于错误页面simple_tag(takes_context=True)接收的上下文不包含请求(用于告知我在哪个应用中)。
有没有办法解决它,还是有更好的解决方案来解决我的问题?
(Django 是 1.11)
【问题讨论】: