У меня есть модель, которая сохраняет изображения профиля пользователя.Если загружаемое изображение больше 200x200 пикселей, мы изменяем размер до 200x200.Если изображение имеет размер 200x200, то мы возвращаем это изображение.Теперь я хочу, чтобы пользователь выдал ошибку, говорящую, что это изображение слишком маленькое и недопустимо.Вот что у меня есть:
class Profile(models.Model):
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
bio = models.CharField(max_length=200, null=True)
avatar = models.ImageField(upload_to="img/path")
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=True)
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
if height < 200 or width < 200:
return ValidationError("Image size must be greater than 200")
image = image.resize((200, 200), Image.ANTIALIAS)
image.save(self.avatar.path)
image.close()
Когда изображение меньше 200 пикселей по ширине или высоте, оно не должно быть загружено.Тем не менее, изображение загружается.Как я могу предотвратить это?