Python django.template.base.FilterExpression() Examples
The following are 8
code examples of django.template.base.FilterExpression().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
django.template.base
, or try the search function
.
Example #1
Source File: filters.py From kobo-predict with BSD 2-Clause "Simplified" License | 6 votes |
def render(self, context): for i, arg in enumerate(self.macro.args): try: fe = self.fe_args[i] context[arg] = fe.resolve(context) except IndexError: context[arg] = "" for name, default in iter(self.macro.kwargs.items()): if name in self.fe_kwargs: context[name] = self.fe_kwargs[name].resolve(context) else: context[name] = FilterExpression(default, self.macro.parser ).resolve(context) return self.macro.nodelist.render(context)
Example #2
Source File: sitemessage.py From django-sitemessage with BSD 3-Clause "New" or "Revised" License | 6 votes |
def render(self, context): resolve = lambda arg: arg.resolve(context) if isinstance(arg, FilterExpression) else arg prefs_obj = resolve(self.prefs_obj) if not isinstance(prefs_obj, tuple): if settings.DEBUG: raise SiteMessageConfigurationError( '`sitemessage_prefs_table` template tag expects a tuple generated ' 'by `get_user_preferences_for_ui` but `%s` is given.' % type(prefs_obj)) return '' # Silent fall. context.push() context['sitemessage_user_prefs'] = prefs_obj contents = get_template( resolve(self.use_template or 'sitemessage/user_prefs_table.html') ).render(context.flatten() if _CONTEXT_FLATTEN else context) context.pop() return contents
Example #3
Source File: macros.py From django-templates-macros with MIT License | 6 votes |
def render(self, context): for i, arg in enumerate(self.macro.args): try: fe = self.fe_args[i] context[arg] = fe.resolve(context) except IndexError: context[arg] = "" for name, default in self.macro.kwargs.items(): if name in self.fe_kwargs: context[name] = self.fe_kwargs[name].resolve(context) else: context[name] = FilterExpression(default, self.macro.parser ).resolve(context) # Place output into context variable context[self.macro.name] = self.macro.nodelist.render(context) return '' if self.context_only else context[self.macro.name]
Example #4
Source File: macros.py From madewithwagtail with MIT License | 6 votes |
def render(self, context): for i, arg in enumerate(self.macro.args): try: fe = self.fe_args[i] context[arg] = fe.resolve(context) except IndexError: context[arg] = "" for name, default in self.macro.kwargs.items(): if name in self.fe_kwargs: context[name] = self.fe_kwargs[name].resolve(context) else: context[name] = FilterExpression(default, self.macro.parser ).resolve(context) # Place output into context variable context[self.macro.name] = self.macro.nodelist.render(context) return '' if self.context_only else context[self.macro.name]
Example #5
Source File: filters.py From kobo-predict with BSD 2-Clause "Simplified" License | 5 votes |
def do_usemacro(parser, token): try: args = token.split_contents() tag_name, macro_name, values = args[0], args[1], args[2:] except IndexError: m = ("'%s' tag requires at least one argument (macro name)" % token.contents.split()[0]) raise template.TemplateSyntaxError(m) try: macro = parser._macros[macro_name] except (AttributeError, KeyError): m = "Macro '%s' is not defined" % macro_name raise template.TemplateSyntaxError(m) fe_kwargs = {} fe_args = [] for val in values: if "=" in val: # kwarg name, value = val.split("=") fe_kwargs[name] = FilterExpression(value, parser) else: # arg # no validation, go for it ... fe_args.append(FilterExpression(val, parser)) macro.parser = parser return UseMacroNode(macro, fe_args, fe_kwargs)
Example #6
Source File: utils.py From wagtail-personalisation with MIT License | 5 votes |
def parse_tag(token, parser): """Parses template tag for name, arguments and keyword arguments. :param token: Template token containing all the tag contents :type token: django.template.base.Token :param parser: Template parser :type parser: django.template.base.Parser :return: Tuple with tag name, arguments and keyword arguments :rtype: tuple """ # Split the tag content into words, respecting quoted strings. bits = token.split_contents() # Pull out the tag name. tag_name = bits.pop(0) # Parse the rest of the args, and build FilterExpressions from them so that # we can evaluate them later. args = [] kwargs = {} for bit in bits: # Is this a kwarg or an arg? match = kwarg_re.match(bit) kwarg_format = match and match.group(1) if kwarg_format: key, value = match.groups() kwargs[key] = FilterExpression(value, parser) else: args.append(FilterExpression(bit, parser)) return (tag_name, args, kwargs)
Example #7
Source File: macros.py From django-templates-macros with MIT License | 5 votes |
def parse_usemacro(parser, token): try: args = token.split_contents() tag_name, macro_name, values = args[0], args[1], args[2:] except IndexError: m = ("'%s' tag requires at least one argument (macro name)" % token.contents.split()[0]) raise template.TemplateSyntaxError(m) try: macro = parser._macros[macro_name] except (AttributeError, KeyError): m = "Macro '%s' is not defined" % macro_name raise template.TemplateSyntaxError(m) fe_kwargs = {} fe_args = [] for val in values: if "=" in val: # kwarg name, value = val.split("=") fe_kwargs[name] = FilterExpression(value, parser) else: # arg # no validation, go for it ... fe_args.append(FilterExpression(val, parser)) macro.name = macro_name macro.parser = parser return macro, fe_args, fe_kwargs
Example #8
Source File: macros.py From madewithwagtail with MIT License | 5 votes |
def parse_usemacro(parser, token): try: args = token.split_contents() macro_name, values = args[1], args[2:] except IndexError: m = ("'%s' tag requires at least one argument (macro name)" % token.contents.split()[0]) raise template.TemplateSyntaxError(m) try: macro = parser._macros[macro_name] except (AttributeError, KeyError): m = "Macro '%s' is not defined" % macro_name raise template.TemplateSyntaxError(m) fe_kwargs = {} fe_args = [] for val in values: if "=" in val: # kwarg name, value = val.split("=") fe_kwargs[name] = FilterExpression(value, parser) else: # arg # no validation, go for it ... fe_args.append(FilterExpression(val, parser)) macro.name = macro_name macro.parser = parser return macro, fe_args, fe_kwargs