Do not traceback when rendering a blurp (fixes #5092)
If DEBUG is True, report exception in result string.
This commit is contained in:
parent
d73a37fb1d
commit
85bd25bf34
|
@ -1,4 +1,8 @@
|
|||
import logging
|
||||
|
||||
from django import template
|
||||
from django.conf import settings
|
||||
from django.utils.html import escape
|
||||
|
||||
from classytags.arguments import Argument
|
||||
from classytags.core import Options, Tag
|
||||
|
@ -21,9 +25,19 @@ class RenderBlurp(Tag):
|
|||
return ''
|
||||
template = renderer.render_template()
|
||||
context = renderer.render(context)
|
||||
if not hasattr(template, 'render'):
|
||||
template = template.Template(template)
|
||||
return template.render(context)
|
||||
try:
|
||||
if not hasattr(template, 'render'):
|
||||
template = template.Template(template)
|
||||
return template.render(context)
|
||||
except Exception, e:
|
||||
logging.getLogger(__name__).exception('error while rendering %s',
|
||||
renderer)
|
||||
msg = ''
|
||||
if settings.TEMPLATE_DEBUG:
|
||||
msg += 'error while rendering %s: %s' % (renderer, e)
|
||||
msg = '<pre>%s</pre>' % escape(msg)
|
||||
return msg
|
||||
|
||||
|
||||
@register.tag
|
||||
class BlurpNode(Tag):
|
||||
|
|
Reference in New Issue