我在模型中有一个图像字段。我需要将该图像的两个副本(已调整大小)复制到另一个两个字段(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
答案 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()