--- request_profiler.orig/models.py	2020-06-05 14:33:10.408859604 +0200
+++ request_profiler/models.py	2020-06-05 14:35:09.412282408 +0200
@@ -182,7 +182,7 @@
         """Extract values from HttpRequest and store locally."""
         self.request = request
         self.http_method = request.method
-        self.request_uri = request.path
+        self.request_uri = request.path[:200]
         self.query_string = request.META.get("QUERY_STRING", "")
         self.http_user_agent = request.META.get("HTTP_USER_AGENT", "")[:400]
         # we care about the domain more than the URL itself, so truncating
@@ -190,11 +190,7 @@
         self.http_referer = request.META.get("HTTP_REFERER", "")[:400]
         # X-Forwarded-For is used by convention when passing through
         # load balancers etc., as the REMOTE_ADDR is rewritten in transit
-        self.remote_addr = (
-            request.META.get("HTTP_X_FORWARDED_FOR")
-            if "HTTP_X_FORWARDED_FOR" in request.META
-            else request.META.get("REMOTE_ADDR")
-        )
+        self.remote_addr = request.META.get("REMOTE_ADDR")
         # these two require middleware, so may not exist
         if hasattr(request, "session"):
             self.session_key = request.session.session_key or ""
@@ -207,7 +203,10 @@
         """Extract values from HttpResponse and store locally."""
         self.response = response
         self.response_status_code = response.status_code
-        self.response_content_length = len(response.content)
+        if hasattr(response, 'content'):
+            self.response_content_length = len(response.content)
+        else:
+            self.response_content_length = -1
         return self
 
     def stop(self):
