MCPcopy
hub / github.com/django/django / get_traceback_data

Method get_traceback_data

django/views/debug.py:349–429  ·  view source on GitHub ↗

Return a dictionary containing traceback information.

(self)

Source from the content-addressed store, hash-verified

347 )
348
349 def get_traceback_data(self):
350 """Return a dictionary containing traceback information."""
351 if self.exc_type and issubclass(self.exc_type, TemplateDoesNotExist):
352 self.template_does_not_exist = True
353 self.postmortem = self.exc_value.chain or [self.exc_value]
354
355 frames = self.get_traceback_frames()
356 for i, frame in enumerate(frames):
357 if "vars" in frame:
358 frame_vars = []
359 for k, v in frame["vars"]:
360 v = pprint(v)
361 # Trim large blobs of data
362 if len(v) > 4096:
363 v = "%s… <trimmed %d bytes string>" % (v[0:4096], len(v))
364 frame_vars.append((k, v))
365 frame["vars"] = frame_vars
366 frames[i] = frame
367
368 unicode_hint = ""
369 if self.exc_type and issubclass(self.exc_type, UnicodeError):
370 start = getattr(self.exc_value, "start", None)
371 end = getattr(self.exc_value, "end", None)
372 if start is not None and end is not None:
373 unicode_str = self.exc_value.args[1]
374 unicode_hint = force_str(
375 unicode_str[max(start - 5, 0) : min(end + 5, len(unicode_str))],
376 "ascii",
377 errors="replace",
378 )
379 from django import get_version
380
381 if self.request is None:
382 user_str = None
383 else:
384 try:
385 user_str = str(self.request.user)
386 except Exception:
387 # request.user may raise OperationalError if the database is
388 # unavailable, for example.
389 user_str = "[unable to retrieve the current user]"
390
391 c = {
392 "is_email": self.is_email,
393 "unicode_hint": unicode_hint,
394 "frames": frames,
395 "request": self.request,
396 "request_meta": self.filter.get_safe_request_meta(self.request),
397 "request_COOKIES_items": self.filter.get_safe_cookies(self.request).items(),
398 "user_str": user_str,
399 "filtered_POST_items": list(
400 self.filter.get_post_parameters(self.request).items()
401 ),
402 "settings": self.filter.get_safe_settings(),
403 "sys_executable": sys.executable,
404 "sys_version_info": "%d.%d.%d" % sys.version_info[0:3],
405 "server_time": timezone.now(),
406 "django_version_info": get_version(),

Calls 14

get_traceback_framesMethod · 0.95
_get_raw_insecure_uriMethod · 0.95
pprintFunction · 0.90
force_strFunction · 0.90
get_versionFunction · 0.90
get_callerFunction · 0.85
get_safe_request_metaMethod · 0.80
get_safe_cookiesMethod · 0.80
get_safe_settingsMethod · 0.80
appendMethod · 0.45
itemsMethod · 0.45
get_post_parametersMethod · 0.45