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

  1. Dinamic Thumbnail for ImageField by agusmakmun 7 months, 1 week ago
  2. Image Preview on ImageField in admin by fyaconiello 5 years, 4 months ago
  3. django easy_thumbnails AdminImageWidget by livskiy 3 years, 11 months ago
  4. Admin Image Widget + easy-thumbnails by babu 5 years, 2 months ago
  5. Admin Image Widget by baumer1122 8 years, 1 month ago

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.