当DEBUG = False
我知道错误确实邮寄到ADMIN时,但如果我以superuser
登录,我希望在屏幕上看到错误。
有没有办法触发它来显示调试屏幕而不是公共用户的500.html?
答案 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")