0

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

我进行了搜索,但似乎没有什么适合我的问题。我已经安装了 PIL。尝试了 django-imagekit,其他一些片段。

如果你知道任何链接也会很棒,顺便说一句,我是一个 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
4

1 回答 1

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()
于 2011-07-30T05:43:11.727 回答