Login

ImageField for admin with thumbnail

Author:
semente
Posted:
June 19, 2009
Language:
Python
Version:
1.0
Tags:
image admin thumbnail imagefield widget imagewidget
Score:
6 (after 6 ratings)

AdminImageWidget is a ImageField Widget for admin that shows a thumbnail.

Usage example on a form:

class IconForm(forms.ModelForm):
    icon = forms.ImageField(label='icon', widget=AdminImageWidget)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
from django import forms
from django.utils.safestring import mark_safe

class AdminImageWidget(forms.FileInput):
    """
    A ImageField Widget for admin that shows a thumbnail.
    """

    def __init__(self, attrs={}):
        super(AdminImageWidget, self).__init__(attrs)

    def render(self, name, value, attrs=None):
        output = []
        if value and hasattr(value, "url"):
            output.append(('<a target="_blank" href="%s">'
                           '<img src="%s" style="height: 28px;" /></a> '
                           % (value.url, value.url)))
        output.append(super(AdminImageWidget, self).render(name, value, attrs))
        return mark_safe(u''.join(output))

More like this

Comments

yolk (on October 23, 2013):
<p>Thank you for this! I'm using this with Sorl.Thumbnails for thumbs; it was easy to add (just two more lines!)</p> <pre>from sorl.thumbnail import get_thumbnail class AdminImageWidget(forms.FileInput): """ A ImageField Widget for admin that shows a thumbnail. """ def __init__(self, attrs={}): super(AdminImageWidget, self).__init__(attrs) def render(self, name, value, attrs=None): output = [] if value and hasattr(value, 'url'): thumb = get_thumbnail(value, 'x28', crop='center', format='PNG') output.append('<a target="_blank" href="%s"><img src="%s" style="height: 28px;" /></a> ' % (value.url, thumb.url)) output.append(super(AdminImageWidget, self).render(name, value, attrs)) return mark_safe(u''.join(output)) </pre>

#

Please login first before commenting.