Django-Thumbs is the easiest way to create thumbnails for your images with Django. Works with any StorageBackend.
The easiest way to create thumbnails for your images with Django. Works with any StorageBackend.
You can get Django-Thumbs by using pip or easy_install:
$ pip install django-thumbs or $ easy_install django-thumbs
If you want to install it from source, grab the git repository from github and run setup.py:
$ git clone git://github.com/skitoo/django-thumbs.git $ cd django-thumbs $ python setup.py install
from django.db import models from django_thumbs.db.models import ImageWithThumbsField class Person(models.Model): photo = ImageWithThumbsField(upload_to='images', sizes=((125,125),(200,200))) second_photo = ImageWithThumbsField(upload_to='images')
In this example we have a Person model with 2 image fields.
You can see the field second_photo doesn’t have a sizes attribute. This field works exactly the same way as a normal ImageField.
The field photo has a sizes attribute specifying desired sizes for the thumbnails. This field works the same way as ImageField but it also creates the desired thumbnails when uploading a new file and deletes the thumbnails when deleting the file.
With ImageField you retrieve the URL for the image with: someone.photo.url With ImageWithThumbsField you retrieve it the same way. You also retrieve the URL for every thumbnail specifying its size: In this example we use someone.photo.url_125x125 and someone.photo.url_200x200 to get the URL of both thumbnails.
At any time you can go back and use ImageField again without altering the database or anything else. Just replace ImageWithThumbsField with ImageField again and make sure you delete the sizes attribute. Everything will work the same way it worked before using django-thumbs. Just remember to delete generated thumbnails in the case you don’t want to have them anymore.