- April 8, 2007
- image admin
- 6 (after 6 ratings)
This is a very simple way to display images within the admin list view. It is not efficient in the sense that the images are being downloaded in original format, however for cases where the images are not regularly accessed it may be a straightforward option. Can also be tied into WYSIWYG editors like TinyMCE by adding an appropriate href link in the return value.
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',)