Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 源更改时未重新生成ImageSpecField_Python_Django_Imagekit - Fatal编程技术网

Python 源更改时未重新生成ImageSpecField

Python 源更改时未重新生成ImageSpecField,python,django,imagekit,Python,Django,Imagekit,我正在使用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',

我正在使用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缩略图模板标记来创建重新调整大小的最新缩略图。我同意这一点,但我只想要图像url,而不是完整的图像标记,因为它需要是背景图像(imagekit开发人员:如果没有办法只在模板标记中获取url,请注意生成html违反了最小责任原则)


我不想深入imagekit的内心,我只希望通过更改更新源文件的方式,在“源文件已更改”信号上正确生成缩略图,或者我希望能够调用类似
model.render\u thumboil.generate(source=model.render\u image)
的函数。当时我避免了这一点,但后来我又需要解决这个问题,我在
ImageSpecField
上发现了一个
generate
方法。您只需
model.image\u缩略图.generate()
。如果出现错误
缺少源:规范“”没有与其关联的源文件。
,则与
ImageSpecField
关联的源没有关联的文件