def get_options(self, context): resolved_options = {} if self.takes_request: resolved_options['request'] = context.get('request', None) count = 0 for key, expr in self.options: noresolve = {u'1': True, u'0': False} value = noresolve.get(unicode(expr), expr.resolve(context)) if count < len(self.required_params) and not value: # TODO currently assuming that falsy values are invalid here; # ideally we'd raise a VariableDoesNotExist only if the expr # doesn't resolve, but django doesn't seem to want to let us # when using parser.compile_filter(...) instead of # template.Variable(...) raise template.VariableDoesNotExist('No value supplied for argument %s' % key) resolved_options[key] = value count += 1 renderer = self.get_renderer(context) if renderer: resolved_options['renderer'] = renderer return resolved_options
def render(self, context): try: self.value = self.value.resolve(context) if not isinstance(self.value, ImageFieldFile): raise template.VariableDoesNotExist( 'Image argument should be an ImageField') images = context.dicts[0].setdefault('_templated_docs_imgs', {}) id = len(images) z_index = id + 3 # Magic width = self.value.width * PIXEL_TO_CM height = self.value.height * PIXEL_TO_CM filename = os.path.basename(self.value.name) basename = os.path.splitext(filename)[0] images[self.value.path] = self.value return ('<draw:frame draw:style-name="gr%(z_index)s" ' 'draw:name="%(basename)s" ' 'draw:id="id%(id)s" ' 'text:anchor-type="char" svg:width="%(width)fcm" ' 'svg:height="%(height)fcm" draw:z-index="%(z_index)s">' '<draw:image xlink:href="Pictures/%(filename)s" ' 'xlink:type="simple" xlink:show="embed" ' 'xlink:actuate="onLoad"/></draw:frame>') % locals() except template.VariableDoesNotExist: return ''
def _get_variables_from_context(context, tag_name): if 'request' in context: request = context['request'] else: request = get_current_request() if request is None: raise template.VariableDoesNotExist( 'The {} template tag requires a "request" to be present in the template context. Consider using ' '"emulate_http_request" if you are rendering the template in a celery task.' .format(tag_name)) message = context.get('message') if message is None: raise template.VariableDoesNotExist( f'The {tag_name} template tag requires a "message" to be present in the template context.' ) return request.site, request.user, message
def do_takes_current_page(context, *args, **kwargs): page = get_page_from_context(context, kwargs) if not page: page = get_default_news_page() if page is None: raise template.VariableDoesNotExist("Could not determine the current page from the template context.") kwargs["page"] = page return func(context, *args, **kwargs)
def render(self, context): try: namespace = self.namespace.resolve(context) except template.VariableDoesNotExist: namespace = None try: name = self.name.resolve(context) except template.VariableDoesNotExist(context): name = None set_active_tab(context, namespace, name) return ''
def render(self, context): try: namespace = self.namespace.resolve(context) except template.VariableDoesNotExist: namespace = None try: name = self.name.resolve(context) except template.VariableDoesNotExist(context): name = None if is_active_tab(context, namespace, name): return self.nodelist_true.render(context) return self.nodelist_false.render(context)
def active_page(request, view_name): output: str if request: try: output = 'colorlib-active' if resolve( request.path_info).url_name == view_name else '' except Resolver404 as e: raise template.VariableDoesNotExist( 'Error setting active_page tag', e) return output
def validate_context(self, context_dict): if 'site' not in context_dict: context_dict['site'] = Site.objects.get_current() for required_context in self.required_contexts.all(): if required_context.key not in context_dict: raise template.VariableDoesNotExist(required_context.key) var_type = type(context_dict[required_context.key]) if required_context.type and not issubclass( var_type, required_context.type.model_class()): raise template.TemplateSyntaxError( "invalid type for %s; expected %s, got %s" % (required_context.key, required_context.type.model_class(), var_type)) return True
def resolve_value(variable, context): """ If given a ``template.Variable`` or ``template.FilterExpression``, return the resolved value, otherwise return the given variable object. """ if hasattr(variable, "resolve"): if isinstance(variable, template.FilterExpression): result = variable.resolve(context, ignore_failures=True) if result is None: raise template.VariableDoesNotExist( 'Failed lookup for "%s"' % variable ) return result return variable.resolve(context) return variable
def render(self, context): """ Render the results into the context. :param context: The context as provided by django. :type context: dict :rtype: empty string """ try: obj = self.obj.resolve(context) except template.VariableDoesNotExist: msg = _("The model object does not exist in the context, " "found '{}'").format(self.obj) log.warning(ugettext(msg)) raise template.VariableDoesNotExist(msg) context[self.name] = obj.get_key_value(self.slug) return ''
def render(self, context): search_result = context[self.search_result] if self.field[0] in ['"', "'"]: field = self.field[1:-1] else: field = template.Variable(self.field).resolve(context) if field not in search_result: raise template.VariableDoesNotExist('field {} is not a member of the search result'.format(field)) text = '' if search_result[field]: text = html_tag.sub('', search_result[field]) if 'highlight' in search_result.meta: if field in search_result.meta.highlight: text = format_highlight(search_result.meta.highlight[field]) return text