1

DEBUG = False在你的settings.py中,如果有错误等,它会显示templates/500.html 。

使用DEBUG = True,django 的开发错误页面将显示并为您(开发人员)提供有用的错误消息和调试信息

问:在我拥有的生产环境中DEBUG = False,有没有办法为仅在 Django /admin 站点中发生的错误显示“开发错误页面”?

例如,不需要向管理员用户显示漂亮的错误页面,而且我可以更快地解决问题,因为管理员可以将错误复制并粘贴并通过电子邮件发送给我,而不是我必须通过 SSH 连接到多个应用程序服务器并检查日志

4

2 回答 2

3

使用哨兵(也可以作为您自己托管的开源项目提供)。它将收集所有错误(无论它们发生在哪里),为您提供详细的追溯,并为您通知和跟踪错误。

所有这一切DEBUG = False

于 2012-12-14T18:06:46.910 回答
0

Django 的 DEBUG 设置会执行其他操作(例如记录每个 SQL 查询),这将很快消耗您的服务器内存,但确定为什么不按您的喜好处理异常?

Django 的漂亮异常有很多代码可以清理和自省,django.views.debug但它应该直接吐出一个简单的异常。

只需创建一个使用该process_exception钩子的中间件。

https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_exception

class MyExceptionHandler(object):
    def process_exception(self, request, exception):
        if request.path.startswith('/admin/'):
             return http.HttpResponse(
                      "We've encountered an exception in the /admin/ pages!")

您可以随意返回尽可能多的调试信息。

于 2012-12-14T20:33:38.570 回答