【问题标题】:Problem with django and sorl.thumbnail model fielddjango 和 sorl.thumbnail 模型字段的问题
【发布时间】:2019-04-09 17:18:31
【问题描述】:

我想要什么:当用户从管理员面板下载照片时,我想创建一个预览(缩略图)并将其保存到此模型的其他字段中,使用 sorl.thumbnail。

我做什么:

from sorl.thumbnail import ImageField, get_thumbnail

class sitePhotos(models.Model):

    photo = ImageField(verbose_name=u'Фотография для галереи', 
               upload_to=upload_galery_photos, null=True)

    preview = ImageField(upload_to=upload_galery_previews, editable=False, null=True)

正在迁移。

我正在尝试从类 sitePhotos 覆盖保存方法:

def save(self, *args, **kwargs):
    self.preview = get_thumbnail(self.photo, '250x250', crop='center', quality=99)
    super(sitePhotos, self).save(*args, **kwargs)

问题:文档 sorl.thumbnail:https://sorl-thumbnail.readthedocs.io/en/latest/examples.html#low-level-api-examples

im = get_thumbnail(my_file, '100x100', crop='center', quality=99)

my_file 的类型是什么?它是一个 url、ImageField 还是什么?当启动有错误'ImageField'对象没有属性'_committed'

谷歌:override save method - 'ImageFile' object has no attribute '_committed'

在那之后,我对 url 和其他有了魔法。我的完成功能:

self.preview = get_thumbnail('../'+self.photo.url, '250x250',
                            crop='center', quality=99).url

可能有人有这个工作的例子,或者我在哪里可以读到这个?谢谢你的回答!

【问题讨论】:

    标签: python django sorl-thumbnail


    【解决方案1】:

    您可以对图像文件使用保存方法:

    def save(self, *args, **kwargs):
        preview = get_thumbnail(self.photo, '250x250', crop='center', quality=99)
        self.preview.save(preview.name, ContentFile(preview.read()), save=False)
        super(sitePhotos, self).save(*args, **kwargs)
    

    【讨论】:

      猜你喜欢
      • 2011-01-16
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 2014-04-03
      • 2013-03-16
      • 1970-01-01
      • 2014-11-23
      相关资源
      最近更新 更多