Skip to content

Commit 05411ff

Browse files
PakawiNzsentrivana
andauthored
allowing ASGI to use drf_request in DjangoRequestExtractor (getsentry#3572)
since we already have patched a request object (both ASGI/WSGI) before arriving, we should move patched-using logic closer to where it actually being used. for minimize impact and allow ASGI functionality. --------- Co-authored-by: Ivana Kellyer <[email protected]>
1 parent 4636afc commit 05411ff

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

sentry_sdk/integrations/django/__init__.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -491,13 +491,6 @@ def wsgi_request_event_processor(event, hint):
491491
# We have a `asgi_request_event_processor` for this.
492492
return event
493493

494-
try:
495-
drf_request = request._sentry_drf_request_backref()
496-
if drf_request is not None:
497-
request = drf_request
498-
except AttributeError:
499-
pass
500-
501494
with capture_internal_exceptions():
502495
DjangoRequestExtractor(request).extract_into_event(event)
503496

@@ -530,6 +523,16 @@ def _got_request_exception(request=None, **kwargs):
530523

531524

532525
class DjangoRequestExtractor(RequestExtractor):
526+
def __init__(self, request):
527+
# type: (Union[WSGIRequest, ASGIRequest]) -> None
528+
try:
529+
drf_request = request._sentry_drf_request_backref()
530+
if drf_request is not None:
531+
request = drf_request
532+
except AttributeError:
533+
pass
534+
self.request = request
535+
533536
def env(self):
534537
# type: () -> Dict[str, str]
535538
return self.request.META

0 commit comments

Comments
 (0)