Я создаю миниатюру для изображений с помощью Pillow, однако я не могу сохранить их в поле image_thumbnail, поскольку поле имеет тип Image, и я получаю исключение: ValueError: Невозможно назначить "": "GalleryItem.image_thumbnail "должен быть экземпляром" Image ".
Трясогузка уже использует подушку, но я не могу найти легкий способ сделать это ...
class GalleryItem(models.Model):
image = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+',
help_text='Image size must be 1440 x 961 px.'
)
image_thumbnail = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+',
)
category = models.ForeignKey(
'ImageCategorie',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
def createThumbnails(self):
size = (300, 300)
outfile = self.image.title.split('.')[0] + ".thumbnail.jpg"
try:
im = Image.open(self.image.file)
im.thumbnail(size)
im.save(outfile, format="jpeg")
return im
except IOError:
print("cannot create thumbnail for", self.image.file)
def save(self, *args, **kwargs):
self.image_thumbnail = self.createThumbnails()
import ipdb; ipdb.set_trace()
super(GalleryItem, self).save(*args, **kwargs)
def __str__(self):
return self.image.title