skip to navigation
skip to content

django-stdimage 0.4.1

Django Standarized Image Field

Latest Version: 3.0.1

Django Standarized Image Field

Django Field that implement the following features:

  • Django-Storages compatible (S3)
  • Resize images to different sizes
  • Access thumbnails on model level, no template tags required
  • Preserves original image
  • Allow image deletion
  • Rename files to a standardized name (using a callable upload_to)


Install latest PIL - there is really no reason to use this package without it

easy_install django-stdimage


pip django-stdimage

Put ‘stdimage’ in the INSTALLED_APPS


Import it in your project, and use in your models.


from stdimage import StdImageField

class MyClass(models.Model):
    # works as ImageField
    image1 = StdImageField(upload_to='path/to/img')

    # can be deleted through admin
    image2 = StdImageField(upload_to='path/to/img', blank=True)

    # creates a thumbnail resized to maximum size to fit a 100x75 area
    image3 = StdImageField(upload_to='path/to/img', variations={'thumbnail': (100, 75)})

    # creates a thumbnail resized to 100x100 croping if necessary
    image4 = StdImageField(upload_to='path/to/img', variations={'thumbnail': (100, 100, True})

    # all previous features in one declaration
    image_all = StdImageField(upload_to='path/to/img', blank=True,
                    variations={'large': (640, 480), 'thumbnail': (100, 100, True)})

For using generated thumbnail in templates use “myimagefield.thumbnail”. Example:

<a href="{{ object.myimage.url }}"><img alt="" src="{{ object.myimage.thumbnail.url }}"/></a>

About image names

By default StdImageField stores images without modifying the file name. If you want to use more consistent file names you can use the build in upload functions. Example:

from functools import partial

class MyClass(models.Model)
    # Gets saved to MEDIA_ROOT/myclass/#FILENAME#.#EXT#
    image1 = StdImageField(upload_to=UPLOAD_TO_CLASS_NAME)

    # Gets saved to MEDIA_ROOT/myclass/pic.#EXT#
    image2 = StdImageField(upload_to=partial(UPLOAD_TO_CLASS_NAME, name='pic'))

    # Gets saved to MEDIA_ROOT/images/#UUID#.#EXT#
    image3 = StdImageField(upload_to=partial(UPLOAD_TO_UUID, path='images'))

    # Gets saved to MEDIA_ROOT/myclass/#UUID#.#EXT#
    image4 = StdImageField(upload_to=UPLOAD_TO_CLASS_NAME_UUID)
File Type Py Version Uploaded on Size
django-stdimage-0.4.1.macosx-10.9-intel.exe (md5) MS Windows installer any 2014-02-27 65KB
django-stdimage-0.4.1.tar.gz (md5) Source 2014-02-27 5KB