django-extended-image-field / widgets.py

from django.forms.widgets import FileInput
from django.utils.safestring import mark_safe

class ExtendedImageWidget(FileInput):
    def __init__(self, attrs=None):
        super(ExtendedImageWidget, self).__init__(attrs)

    def render(self, name, value, attrs=None):
        output = []
        if not self.attrs is None:
            preview_name = self.attrs['preview']
            if preview_name == 'self' and hasattr(value, 'url'):
                output.append(('<a target="_blank" href="%s">'
                           '<img src="%s" style="height: %dpx; width=%dpx;" /></a><br /> '
                           % (value.url, value.url, value.height, value.width)))
            elif value and hasattr(value, preview_name):
                preview = getattr(value, preview_name)
                output.append(('<a target="_blank" href="%s">'
                           '<img src="%s" style="height: %dpx; width=%dpx;" /></a><br /> '
                           % (value.url, preview['url'], preview['height'], preview['width'])))
        output.append(super(ExtendedImageWidget, self).render(name, value, attrs))
        return mark_safe(u''.join(output))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.