当DEBUG = False时,Django如何在调试模式下显示错误

时间:2015-07-26 21:57:56

标签: django

DEBUG = False我知道错误确实邮寄到ADMIN时,但如果我以superuser登录,我希望在屏幕上看到错误。

有没有办法触发它来显示调试屏幕而不是公共用户的500.html?

2 个答案:

答案 0 :(得分:0)

如果您对电子邮件中生成的信息不满意,最好使用Sentry之类的内容来跟踪您网站上发生的情况,以便了解用户遇到的情况。

它使用标准的python日志记录,因此您可以设置触发的级别哨兵,并在您的应用程序中包含各种消息来告诉您信息,并自动获取可能发生的警告/错误。它为您提供了从标准调试错误页面获得的所有类型的信息,包括堆栈跟踪,上下文信息等。

答案 1 :(得分:0)

如前所述,Sentry或其他服务实际上是更好的选择。但是对于你真正想要的方式,你需要一个自定义500处理程序,并在那里使用django.views.debug.technical_500_response https://docs.djangoproject.com/en/dev/_modules/django/views/debug/

除了一个简单的评论之外,没有真正的文档 - 因为它是一种不应该在外部使用的方法。但你可以自由使用它:

urls.py

urls.handler500 = views.handler500

views.py

def handler500(request):
  if request.user.is_superuser():
      return technical_500_response(some, params, dontaskme)
  else:
      return render(request, "500.html")