当我从Django站点收到错误异常电子邮件时,查看当前登录用户的User和/或UserProfile信息会很有用.如何将此添加到Django站点异常错误电子邮件中?
Django在电子邮件末尾附加repr(请求).使用默认的wsgi开发服务器,您可以找到登录用户
'LOGNAME':'myuser',
这可能隐藏在某些电子邮件客户端中,因为它包含在尖括号中.
<WSGIRequest
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
...
'LOGNAME': 'myuser',
...
wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>
Run Code Online (Sandbox Code Playgroud)
此外,您可以实现实现process_exception方法的自定义中间件:
process_exception(self,request,exception)
request是一个HttpRequest对象.exception是由view函数引发的Exception对象.
当视图引发异常时,Django调用process_exception().process_exception()应返回None或HttpResponse对象.如果它返回一个HttpResponse对象,则响应将返回给浏览器.否则,默认异常处理开始.
同样,中间件在响应阶段以相反的顺序运行,其中包括process_exception.如果异常中间件返回响应,那么中间件之上的中间件类将根本不会被调用.