in aws_xray_sdk/ext/django/templates.py [0:0]
def patch_template():
attr = '_xray_original_render'
if getattr(Template, attr, None):
log.debug("already patched")
return
setattr(Template, attr, Template.render)
@xray_recorder.capture('template_render')
def xray_render(self, context):
template_name = self.name or getattr(context, 'template_name', None)
if template_name:
name = str(template_name)
# SafeString are not properly serialized by jsonpickle,
# turn them back to str by adding a non-safe str.
if isinstance(name, SafeString):
name += ''
subsegment = xray_recorder.current_subsegment()
if subsegment:
subsegment.name = name
return Template._xray_original_render(self, context)
Template.render = xray_render