我有一个图像域,称为缩略图,另一个图像域为thumbnail_low,它是缩略图的320 * 200版本。 当用户从缩略图图像字段上传图像时,我会在内部创建分配给thumbnail_low的320 * 200版本。我就是这样做的(请参见下面的代码)。问题是该图像已正确分配给thumbnail_low,除了浏览器指示等待本地主机,直到我的机器崩溃为止,这很奇怪,因为重新启动后我发现该帖子已正确创建。
class Post(models.Model):
thumbnail = models.ImageField(upload_to=post_directory_path)
thumbnail_low = models.ImageField(upload_to=post_directory_path, null=True, blank=True)
def save(self, force_insert=False, force_update=False, using=None,
update_fields=None):
obj = super(Post, self).save(force_insert, force_update, using, update_fields)
if self.thumbnail:
img = Image.open(self.thumbnail.path)
img = img.convert("RGB")
img.save(self.thumbnail.path, format="JPEG", optimized=True)
stream = BytesIO()
copy = img.copy()
copy.thumbnail((320, 200), Image.ANTIALIAS)
copy.save(fp=stream, format="JPEG")
thumbnail_name = "low" + get_random_string(length=4) + str(self.id) + ".jpeg"
content = stream.getvalue()
stream.close()
self.thumbnail_low.save(thumbnail_name, ContentFile(content))
return obj