Я пытаюсь сохранить изображение подушки в моей модели, чтобы моя модель могла позаботиться об этом.Вот как выглядит моя модель:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.ImageField(storage=OverwriteStorage(), upload_to=create_user_image_path, validators=[validate_avatar],
default="default/avatars/avatar.jpg")
def save(self, *args, **kwargs):
super(Profile, self).save(*args, **kwargs)
if self.avatar:
image = Image.open(self.avatar)
height, width = image.size
if height == 200 and width == 200:
image.close()
return
image = image.resize((200, 200), Image.ANTIALIAS)
image.save(self.avatar.path)
image.close()
Модель изменяет размер изображения и соответственно сохраняет его.Я использую allauth
, чтобы получить изображение зарегистрированной социальной учетной записи через адаптер, например:
avatar_url = sociallogin.account.get_avatar_url()
avatar = create_avatar(avatar_url)
profile.avatar = avatar
profile.save()
def create_avatar(avatar_url):
response = requests.get(avatar_url)
avatar = Image.open(BytesIO(response.content))
return avatar
Однако я получаю сообщение об ошибке: AttributeError: 'JpegImageFile' object has no attribute '_committed'
Что я делаю неправильнои как я могу решить это?