be str, bytes, or os.PathLike object, not 'ThumbnailerImageFieldFile'
from django.db import models
from easy_thumbnails.fields import ThumbnailerImageField
from PIL import Image
from io import BytesIO
from django.core.files import File
class Certificate(models.Model):
title = models.CharField(max_length=255, unique=True, verbose_name='Название')
image = ThumbnailerImageField(verbose_name='Сертификат')
published = models.BooleanField(default=True, verbose_name='Опубликовано')
def save(self, *args, **kwargs):
new_image = self.reduce_image_size(self.image)
self.image = new_image
super().save(*args, **kwargs)
def reduce_image_size(self, image):
print(image)
img = Image.open(image)
thumb_io = BytesIO()
img.save(thumb_io, 'jpeg', quality=50)
new_image = File(thumb_io, name=image)
return new_image
def __str__(self):
return f"{self.title}, {self.image}"
class Meta:
verbose_name_plural = 'Список сертификатов'
А полностью трейсбек?
https://dpaste.org/T77e
У тебя в self.image в итоге оказывается не объект поля, как нужно, а объект Image Вроде как) Тебе не нужно ничего возвращать У тебя есть путь к картинке, измени файл по этому пути и все
Несовсем понял что я должен поменять
Обсуждают сегодня