Django图像修改,从一个图像字段到另一个图像字段

时间:2011-07-30 05:14:01

标签: django-models django-1.3

我在模型中有一个图像字段。我需要将该图像的两个副本(已调整大小)复制到另一个两个字段(thumb_big和thumb_small)。 Thumb_big的宽度为225px,高度可以是任何值。和thumb_small是65x50px。

我搜索但似乎没有任何东西适合我的问题。我已经安装了PIL。尝试了django-imagekit,其他一些snipets。

如果你知道任何链接也会很棒,顺便说一句,我是django新手,但你已经假设了,对吗?

这是我的模特

class Photo(models.Model):
    title = models.CharField(max_length=500)
    pub_date = models.DateField(auto_now_add=True)
    mod_date = models.DateField(auto_now=True)
    slug_name = models.SlugField(max_length=500)
    image = models.ImageField(upload_to='interview', blank=True)
    thumb_big = models.ImageField(upload_to= 'interview/thumbs_big', blank=True)
    thumb_small = models.ImageField(upload_to= 'interview/thumbs_small', blank=True)
    category = models.CharField(max_length=200, blank=True)
    details = models.TextField()

    def __unicode__(self):
        return self.title

1 个答案:

答案 0 :(得分:1)

我不太确定您为什么需要在数据库中存储缩略图路径。 有几个django缩略图应用程序。 我最喜欢的两个是:

他们都使用模板标签动态生成缩略图, 并在你的django模板中显示它们。

它们还带有自定义数据库字段,可以更轻松地管理缩略图: http://thumbnail.sorl.net/examples.html#model-examples http://packages.python.org/easy-thumbnails/usage.html#models

如果确实需要在模型中保存缩略图的路径,则可以在图像上载视图中生成两个缩略图,然后将生成的文件路径分配到相应的数据库字段。使用简单的缩略图,它将如下所示:

photo = form.save()
from easy_thumbnails.files import get_thumbnailer
thumbnailer = get_thumbnailer(photo.image)
thumb = thumbnailer.get_thumbnail({'size': (100, 100)})
photo.thumb_big = thumb.name
photo.save()