是否可以仅显示管理站点的调试错误页面?

时间:2012-12-14 18:03:24

标签: django

在您的settings.py中使用DEBUG = False sooo,如果出现错误等,则会显示模板/ 500.html。

使用DEBUG = True,django的开发错误页面会显示并给你(开发人员)我有用的错误信息和调试信息

问。在我有DEBUG = False的生产环境中,是否有办法显示仅在Django / admin网站中出现的错误的“开发错误页面”?

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

2 个答案:

答案 0 :(得分:3)

使用sentry(也可以作为您自己托管的open source project)。它将收集所有错误(无论它们发生在何处),为您提供详细的追溯,并为您通知和跟踪错误。

使用DEBUG = False

的所有内容

答案 1 :(得分: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!")

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