コード例 #1
0
ファイル: base.py プロジェクト: timothyclemans/djangocg
 def resolve(self, context, ignore_failures=False):
     if isinstance(self.var, Variable):
         try:
             obj = self.var.resolve(context)
         except VariableDoesNotExist:
             if ignore_failures:
                 obj = None
             else:
                 if settings.TEMPLATE_STRING_IF_INVALID:
                     global invalid_var_format_string
                     if invalid_var_format_string is None:
                         invalid_var_format_string = '%s' in settings.TEMPLATE_STRING_IF_INVALID
                     if invalid_var_format_string:
                         return settings.TEMPLATE_STRING_IF_INVALID % self.var
                     return settings.TEMPLATE_STRING_IF_INVALID
                 else:
                     obj = settings.TEMPLATE_STRING_IF_INVALID
     else:
         obj = self.var
     for func, args in self.filters:
         arg_vals = []
         for lookup, arg in args:
             if not lookup:
                 arg_vals.append(mark_safe(arg))
             else:
                 arg_vals.append(arg.resolve(context))
         if getattr(func, 'expects_localtime', False):
             obj = template_localtime(obj, context.use_tz)
         if getattr(func, 'needs_autoescape', False):
             new_obj = func(obj, autoescape=context.autoescape, *arg_vals)
         else:
             new_obj = func(obj, *arg_vals)
         if getattr(func, 'is_safe', False) and isinstance(obj, SafeData):
             obj = mark_safe(new_obj)
         elif isinstance(obj, EscapeData):
             obj = mark_for_escaping(new_obj)
         else:
             obj = new_obj
     return obj
コード例 #2
0
def escape_filter(value):
    """
    Marks the value as a string that should not be auto-escaped.
    """
    return mark_for_escaping(value)