def render(self, context): try: # This evaluates to a ImageWithThumbsField, as long as the # user specified a valid model field. relative_source = Variable(self.source_var).resolve(context) except VariableDoesNotExist: if settings.TEMPLATE_DEBUG: raise VariableDoesNotExist("Variable '%s' does not exist." % self.source_var) else: relative_source = None try: requested_name = Variable(self.thumb_name_var).resolve(context) except VariableDoesNotExist: if settings.TEMPLATE_DEBUG: raise TemplateSyntaxError("Name argument '%s' is not a valid thumbnail." % self.thumb_name_var) else: requested_name = None if relative_source is None or requested_name is None: # Couldn't resolve the given template variable. Fail silently. thumbnail = '' else: # Spaces at the end of sizes is just not OK. requested_name = requested_name.strip() # This is typically a athumb.fields.ImageWithThumbsFieldFile object. try: # Allow the user to override the protocol in the tag. force_ssl = self.kwargs.get('force_ssl', False) # Try to detect SSL mode in the request context. Front-facing # server or proxy must be passing the correct headers for # this to work. Also, factor in force_ssl. ssl_mode = self.is_secure(context) or force_ssl # Get the URL for the thumbnail from the # ImageWithThumbsFieldFile object. try: thumbnail = relative_source.generate_url(requested_name, ssl_mode=ssl_mode) except: #import traceback #traceback.print_stack() print "ERROR: Using {% thumbnail %} tag with "\ "a regular ImageField instead of ImageWithThumbsField:", self.source_var return '' except ValueError: # This file object doesn't actually have a file. Probably # model field with a None value. thumbnail = '' # Return the thumbnail class, or put it on the context if self.context_name is None: return thumbnail # We need to get here so we don't have old values in the context # variable. context[self.context_name] = thumbnail return ''
def render(self, context): try: # This evaluates to a ImageWithThumbsField, as long as the # user specified a valid model field. relative_source = Variable(self.source_var).resolve(context) except VariableDoesNotExist: if settings.TEMPLATE_DEBUG: raise VariableDoesNotExist("Variable '%s' does not exist." % self.source_var) else: relative_source = None try: requested_name = Variable(self.thumb_name_var).resolve(context) except VariableDoesNotExist: if settings.TEMPLATE_DEBUG: raise TemplateSyntaxError("Name argument '%s' is not a valid thumbnail." % self.thumb_name_var) else: requested_name = None if relative_source is None or requested_name is None: # Couldn't resolve the given template variable. Fail silently. thumbnail = '' else: # Spaces at the end of sizes is just not OK. requested_name = requested_name.strip() # This is typically a athumb.fields.ImageWithThumbsFieldFile object. try: # Allow the user to override the protocol in the tag. force_ssl = self.kwargs.get('force_ssl', False) # Try to detect SSL mode in the request context. Front-facing # server or proxy must be passing the correct headers for # this to work. Also, factor in force_ssl. ssl_mode = self.is_secure(context) or force_ssl # Get the URL for the thumbnail from the # ImageWithThumbsFieldFile object. try: thumbnail = relative_source.generate_url(requested_name, ssl_mode=ssl_mode) except: #import traceback #traceback.print_stack() print "ERROR: Using {% thumbnail %} tag with " \ "a regular ImageField instead of ImageWithThumbsField:", self.source_var return '' except ValueError: # This file object doesn't actually have a file. Probably # model field with a None value. thumbnail = '' # Return the thumbnail class, or put it on the context if self.context_name is None: return thumbnail # We need to get here so we don't have old values in the context # variable. context[self.context_name] = thumbnail return ''