我正在使用django-imagekit 3.0.3。我在模型上进行了以下设置:
render_image = models.ImageField(upload_to='spec/', null=True, blank=True)
render_thumbnail = ImageSpecField([ResizeToFill(220, 220)],
source='render_image',
format='JPEG',
options={'quality': 90})
哪个方面很有用:当我最初上传图片时,缩略图就可以了。我的问题是我以编程方式更改了原始图像。我想根据新缩略图重新生成缩略图,但我无法查看。我用这一行改变原始图像:
model.render_image = image_rel_path # that is, 'model/uuid.png'
工作正常,我可以访问新图像。我甚至可以使用imagekit缩略图模板标签来创建一个重新调整大小的最新缩略图。我会继续使用它,但我想要的是图片网址,而不是完整的图片标记,因为它需要是一个背景图片(图片工具包开发人员:如果没有方法可以获取模板中的网址)标记,请注意生成HTML违反了最小责任原则。)
我不想深入了解imagekit的内容,我只是想在缩小的源文件中正确生成缩略图'通过更改我更新源文件的方式发出信号,或者我希望能够调用类似model.render_thumbnail.generate(source=model.render_image)
的内容。
答案 0 :(得分:0)
我们走了。我当时避免使用此功能,但我又需要再次解决问题,并在generate
上发现了ImageSpecField
方法。您需要做的只是model.image_thumbnail.generate()
。如果您收到错误MissingSource: The spec '<imagekit.specs.DynamicSpec object at 0x7fb8a93ef450>' has no source file associated with it.
,则与ImageSpecField
相关联的来源没有相关文件。