Django 如何在forms.py中获取图像大小
我正在扩展forms clean方法以获得图像大小,但我需要在扩展ModelForm时获得图像的大小 在下面的表格中,我能够在clean方法中获得以字节为单位的图像大小,但我不确定如何在init中获得它 重要的一点是,在将图像保存到数据库之前,应该先获取图像大小 这件事让我头疼了一个多星期了:)有人能帮我一下吗 forms.pyDjango 如何在forms.py中获取图像大小,django,django-forms,Django,Django Forms,我正在扩展forms clean方法以获得图像大小,但我需要在扩展ModelForm时获得图像的大小 在下面的表格中,我能够在clean方法中获得以字节为单位的图像大小,但我不确定如何在init中获得它 重要的一点是,在将图像保存到数据库之前,应该先获取图像大小 这件事让我头疼了一个多星期了:)有人能帮我一下吗 forms.py class PhotoForm(forms.ModelForm): def clean_old_image(self): image = sel
class PhotoForm(forms.ModelForm):
def clean_old_image(self):
image = self.cleaned_data.get('old_image', False)
print 'old_image._size', image.size
return image
def __init__(self, *args, **kwargs):
super(PhotoForm, self).__init__(*args, **kwargs)
image_size = **# SHOULD BE ABLE TO GET THE IMAGE SIZE HERE**
self.fields['old_image'] = ProcessedImageField(spec_id='myapp:test_app:old_image',
processors=[CustomCompress()],
format='JPEG',
options={'quality': 60}
)
class Meta:
model = Photo
fields = ['old_image']
只是一个猜测,但当您使用照片模型实例化照片表单时,如中所示:
photo = Photo.objects.get(id=1)
photo_form = PhotoForm(instance=photo)
然后图像大小可以通过
def __init__(self, *args, **kwargs):
super(PhotoForm, self).__init__(*args, **kwargs)
if self.instance:
image_size = self.instance.image.size
...
谢谢你的回答。我正在寻找实时上传图像大小,不确定这是否会产生预期的结果。这将在实例化对象之前。如果你正在寻找实时,你的意思是当用户上传表单中的图像时(尚未提交它),那么它的大小应该指示给用户?您需要使用Javascript调用,这超出了Django的范围。