调整图像大小Django

2024-03-28 14:17:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我已从tempfile导入名为temporaryfile的modek`

#models.py
upload_path = 'images'

class Image(models.Model):
    image = models.ImageField(upload_to=upload_path, blank=True, null=True)
    image_url = models.URLField(blank=True, null=True)

    def clean(self):
        if (self.image == None and self.image_url == None ) or (self.image != None and self.image_url != None ):
            raise ValidationError('Empty or both blanked')

    def get_absolute_url(self):
        return reverse('image_edit', args=[str(self.id)])

    def save(self):
        if self.image_url and not self.image:
            name = str(self.image_url).split('/')[-1]
            img = NamedTemporaryFile(delete=True)
            img.write(urlopen(self.image_url).read())
            img.flush()
            self.image.save(name, File(img))
            super(Image, self).save()

此模型将链接url加载到ImageField中

#forms.py
class ImageForm(ModelForm):
class Meta:
    model = Image
    fields = ['image', 'image_url']

这是我添加图像的表单

#views.py
class DetailImage(UpdateView):
model = Image
form_class = ImageForm
template_name = 'image_edit.html'
context_object_name = 'image'

如何调整图像大小以保留原始文件,并且仅在后端显示宽度和高度更改的图像


Tags: andnamepyimageselfnonetrueurl