- Author:
- robharvey
- Posted:
- April 8, 2007
- Language:
- Python
- Version:
- .96
- Tags:
- image admin
- Score:
- 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',)
|
More like this
- Serialize a model instance by chriswedgwood 1 week ago
- Automatically setup raw_id_fields ForeignKey & OneToOneField by agusmakmun 9 months, 1 week ago
- Crispy Form by sourabhsinha396 10 months ago
- ReadOnlySelect by mkoistinen 10 months, 2 weeks ago
- Verify events sent to your webhook endpoints by santos22 11 months, 1 week ago
Comments
Updated the "ratio" field so that it only changes the image size when it is above the MAX_THUMB_LENGTH.
#
Hey robharvey,
cheers for the snippet!
I'm a django-beginner could you please provide a small example about using this snippet?
Dan
#
Please login first before commenting.