Do not traceback when rendering a blurp (fixes #5092)

If DEBUG is True, report exception in result string.
This commit is contained in:
Benjamin Dauvergne 2014-08-27 16:56:20 +02:00
parent d73a37fb1d
commit 85bd25bf34
1 changed files with 17 additions and 3 deletions

View File

@ -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):