BugSnag、Django 和 before_notify 回调

BugSnag, Django and the before_notify callback

BugSnag 的文档针对自定义字段建议这样做:

def callback(notification):

    # if you return False, the notification will not be sent to
    # Bugsnag. (see ignore_classes for simple cases)
    if isinstance(notification.exception, KeyboardInterrupt):
        return False

    # You can set properties of the notification and
    # add your own custom meta-data.
    notification.user = {"id": current_user.id,
      "name": current_user.name,
      "email": current_user.email}
    notification.add_tab("account", {"paying": current_user.acccount.is_paying()})

# Call `callback` before every notification
bugsnag.before_notify(callback)

我的应用程序是基于 JWT 令牌的内部-api 应用程序服务器。意思是,我没有 current_user 或任何用户 "logged in"。有什么办法可以到达当前请求的用户?在视图中,它在 JWT 中间件解析出令牌后可作为 request.user 使用,但我如何将其应用到此回调中?我无权访问请求对象? notification.request 不存在。

因此,如果我的 POST 是键和值的平面列表,这就是我获得 email 值的方式。

d = dict(notification.request_config.django_request.POST)
print(d['email'][0])