【发布时间】:2019-01-31 06:22:04
【问题描述】:
我有一个保存用户个人资料图像的模型。如果上传的图像大于 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 像素时,不应上传该图像。但是,图像正在上传。我怎样才能阻止这种情况发生?
【问题讨论】:
标签: django django-models django-views