【问题标题】:Django image modification, from one image field to othersDjango 图像修改,从一个图像字段到其他图像字段
【发布时间】:2011-07-30 05:14:01
【问题描述】:

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

【问题讨论】:

    标签: django-models django-1.3


    【解决方案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()
    

    【讨论】:

    • 这很白痴,但我应该在我的模型或任何其他地方写这个?
    • 您认为,在您检查表单是否有效之后。在 Django 中处理表单的标准流程如下所示:djangobook.com/en/2.0/chapter07/#b150
    • 谢谢,刚写完这篇文章,我发现了easy-thumbnail。我用那个。可能我暂时不会自己写。
    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 2018-12-05
    • 2017-08-18
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多