'Return HTML code for traceback.'

def get_traceback_html(self):

    if issubclass(self.exc_type, TemplateDoesNotExist):
        from django.template.loader import template_source_loaders
        self.template_does_not_exist = True
        self.loader_debug_info = []
        for loader in template_source_loaders:
            try:
                module = import_module(loader.__module__)
                if hasattr(loader, '__class__'):
                    source_list_func = loader.get_template_sources
                else:
                    source_list_func = module.get_template_sources
                template_list = [{'name': t, 'exists': os.path.exists(t)} for t in source_list_func(str(self.exc_value))]
            except (ImportError, AttributeError):
                template_list = []
            if hasattr(loader, '__class__'):
                loader_name = ((loader.__module__ + '.') + loader.__class__.__name__)
            else:
                loader_name = ((loader.__module__ + '.') + loader.__name__)
            self.loader_debug_info.append({'loader': loader_name, 'templates': template_list})
    if (settings.TEMPLATE_DEBUG and hasattr(self.exc_value, 'source') and isinstance(self.exc_value, TemplateSyntaxError)):
        self.get_template_exception_info()
    frames = self.get_traceback_frames()
    unicode_hint = ''
    if issubclass(self.exc_type, UnicodeError):
        start = getattr(self.exc_value, 'start', None)
        end = getattr(self.exc_value, 'end', None)
        if ((start is not None) and (end is not None)):
            unicode_str = self.exc_value.args[1]
            unicode_hint = smart_unicode(unicode_str[max((start - 5), 0):min((end + 5), len(unicode_str))], 'ascii', errors='replace')
    from django import get_version
    t = Template(TECHNICAL_500_TEMPLATE, name='Technical    500    template')
    c = Context({'exception_type': self.exc_type.__name__, 'exception_value': smart_unicode(self.exc_value, errors='replace'), 'unicode_hint': unicode_hint, 'frames': frames, 'lastframe': frames[(-1)], 'request': self.request, 'settings': get_safe_settings(), 'sys_executable': sys.executable, 'sys_version_info': ('%d.%d.%d' % sys.version_info[0:3]), 'server_time': datetime.datetime.now(), 'django_version_info': get_version(), 'sys_path': sys.path, 'template_info': self.template_info, 'template_does_not_exist': self.template_does_not_exist, 'loader_debug_info': self.loader_debug_info})
    return t.render(c)
