def render(self, context):
        try:
            obj = self.obj.resolve(context)
        except template.VariableDoesNotExist:
            return ''

        if isinstance(self.field, template.Variable):
            field = self.field.resolve(context)

        if not hasattr(obj, field):
            logger.error("object '%s' has not field '%s' " % (obj, field))
            return ''

        text = get_from_cache(obj, field, safe_mode=True)

        template_name = 'render-markup-%s-%s' % (self.obj, self.field)
        return template.Template(text, name=template_name).render(context)
    def render(self, context):
        try:
            obj = self.obj.resolve(context)
        except template.VariableDoesNotExist:
            return ''

        if isinstance(self.field, template.Variable):
            field = self.field.resolve(context)

        if not hasattr(obj, field):
            logger.error("object '%s' has not field '%s' " % (obj, field))
            return ''

        text = get_from_cache(obj, field, safe_mode=True)

        template_name = 'render-markup-%s-%s' % (self.obj, self.field)
        return template.Template(text, name=template_name).render(context)
def markdown(obj, arg=''):
    """
    Runs Markdown over a given object property, optionally using safe_mode
    python-markdown2 supports.

    Syntax::

        {{ obj|markdown:"field [, safe]" }}

    To enable safe mode, which strips raw HTML and only returns HTML
    generated by actual Markdown syntax, pass "safe" as the first
    args in the list.
    """
    args = [e for e in arg.split(",") if e]
    if len(args) > 0 and hasattr(obj, args[0]):
        field = getattr(obj, args[0])
        if len(args) > 1 and args[1] == "safe":
            safe_mode = True
        else:
            safe_mode = False
        result = get_from_cache(obj, field, safe_mode=safe_mode)
    else:
        return force_unicode(obj)
    return mark_safe(result)
def markdown(obj, arg=''):
    """
    Runs Markdown over a given object property, optionally using safe_mode
    python-markdown2 supports.

    Syntax::

        {{ obj|markdown:"field [, safe]" }}

    To enable safe mode, which strips raw HTML and only returns HTML
    generated by actual Markdown syntax, pass "safe" as the first
    args in the list.
    """
    args = [e for e in arg.split(",") if e]
    if len(args) > 0 and hasattr(obj, args[0]):
        field = getattr(obj, args[0])
        if len(args) > 1 and args[1] == "safe":
            safe_mode = True
        else:
            safe_mode = False
        result = get_from_cache(obj, field, safe_mode=safe_mode)
    else:
        return force_unicode(obj)
    return mark_safe(result)