У меня проблема с попыткой изменить размеры изображений. Я заставил его работать как-то в другом проекте, который использует базу данных sqlite3, но он не работает с моим последним проектом, который вместо этого использует mysql.
class UserImage(models.Model):
author = models.OneToOneField(User, on_delete=models.CASCADE, null=True, default=True)
myimage = models.ImageField(default='profile_pics/default-profile-picture.jpg', upload_to=profile_upload)
def __str__(self):
return f'{self.author.username} image'
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
img_read = storage.open(self.myimage.name, 'r')
img = Image.open(img_read)
if img.height > 300 or img.width > 300:
output_size = (300, 300)
img.thumbnail(output_size)
in_mem_file = io.BytesIO()
img.save(in_mem_file, format='JPEG')
img_write = storage.open(self.myimage.name, 'w+')
img_write.write(in_mem_file.getvalue())
img_write.close()
img_read.close()
Состояние ошибки
"Код 'utf-8' c не может декодировать байт 0xff в позиции 0: недопустимый начальный байт. Вы передали b '\ xff \ xd8 \ xff \ xe0 \ x00 \ x10JFIF \ x00 \ x01 \ x01 \ x01 \ x00H '() "