Simple admin list thumbnail view

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    def thumbnail(self):
        """
        Display thumbnail-size image of ImageField named src
        Assumes images are not very large (i.e. no manipulation of the image is done on backend)
        Requires constant named MAX_THUMB_LENGTH to limit longest axis
        """
        max_img_length = max(self.get_src_width(), self.get_src_height())
        ratio = max_img_length > MAX_THUMB_LENGTH and float(max_img_length) / MAX_THUMB_LENGTH or 1
        thumb_width = self.get_src_width() / ratio
        thumb_height = self.get_src_height() / ratio
        url = '%s%s' % (settings.ADMIN_MEDIA_PREFIX, self.get_src_url())
        return '<img src="%s" width="%s" height="%s"/>' % (url, thumb_width, thumb_height)
    thumbnail.short_description = 'Image thumbnail'
    thumbnail.allow_tags = True

    class Admin:
        list_display = ('src', 'thumbnail',)

More like this

  1. Admin list thumbnail by theetderks 6 years, 11 months ago
  2. Simple random file CAPTCHA by jeverling 2 years, 1 month ago
  3. Image Preview on ImageField in admin by fyaconiello 2 years, 12 months ago
  4. Easy file upload handler by mattdw 5 years, 7 months ago
  5. simple text image view by derelm 7 years, 1 month ago

Comments

robharvey (on April 17, 2007):

Updated the "ratio" field so that it only changes the image size when it is above the MAX_THUMB_LENGTH.

#

danfreak (on March 19, 2009):

Hey robharvey,

cheers for the snippet!

I'm a django-beginner could you please provide a small example about using this snippet?

Dan

#

(Forgotten your password?)