-
- 默认小部件:
ClearableFileInput
- 空值:
None
- 规范化为:
UploadedFile
对象,将文件内容和文件名包装到单个对象中。 - 验证文件数据是否已绑定到表单。还使用
FileExtensionValidator
- 错误消息键:
required
、invalid
、missing
、empty
、invalid_image
使用
ImageField
需要安装Pillow 并支持您使用的图像格式。如果您在上传图片时遇到corrupt image
错误,通常表示 Pillow 不理解其格式。要解决此问题,请安装相应的库并重新安装 Pillow。当您在表单上使用
ImageField
时,您还必须记住将文件数据绑定到表单。清理和验证字段后,
UploadedFile
对象将有一个附加的image
属性,其中包含用于检查文件是否为有效图像的 Pillow Image 实例。 Pillow 在验证图像后关闭底层文件说明符,因此虽然非图像数据属性(如format
、height
和width
)可用,但访问底层图像数据的方法,如getdata()
或getpixel()
,如果不重新打开文件就无法使用。例如:>>> from PIL import Image >>> from django import forms >>> from django.core.files.uploadedfile import SimpleUploadedFile >>> class ImageForm(forms.Form): ... img = forms.ImageField() >>> file_data = {'img': SimpleUploadedFile('test.png', <file data>)} >>> form = ImageForm({}, file_data) # Pillow closes the underlying file descriptor. >>> form.is_valid() True >>> image_field = form.cleaned_data['img'] >>> image_field.image <PIL.PngImagePlugin.PngImageFile image mode=RGBA size=191x287 at 0x7F5985045C18> >>> image_field.image.width 191 >>> image_field.image.height 287 >>> image_field.image.format 'PNG' >>> image_field.image.getdata() # Raises AttributeError: 'NoneType' object has no attribute 'seek'. >>> image = Image.open(image_field) >>> image.getdata() <ImagingCore object at 0x7f5984f874b0>
此外,如果 Pillow 可以确定,
UploadedFile.content_type
将使用图像的内容类型进行更新,否则将设置为None
。 - 默认小部件:
本文介绍 django.forms.ImageField
的用法。
声明
class ImageField(**kwargs)
相关用法
- Python PIL ImageFont.truetype()用法及代码示例
- Python PIL ImageFont.load_default()用法及代码示例
- Python PIL Image.draft()用法及代码示例
- Python PIL Image.thumbnail()用法及代码示例
- Python PIL Image.new()用法及代码示例
- Python PIL ImageOps.fit()用法及代码示例
- Python Wand Image()用法及代码示例
- Python PIL ImageDraw.Draw.rectangle()用法及代码示例
- Python PIL ImageEnhance.Color() and ImageEnhance.Contrast()用法及代码示例
- Python PIL Image.getdata()用法及代码示例
- Python PIL ImagePath.Path.tolist()用法及代码示例
- Python PIL Image.transform()用法及代码示例
- Python PIL Image.quantize()用法及代码示例
- Python PIL Image.point()用法及代码示例
- Python PIL Image.frombuffer()用法及代码示例
- Python PIL ImageDraw.Draw.text()用法及代码示例
- Python PIL ImageOps.expand()用法及代码示例
- Python PIL ImageSequence.Iterator()用法及代码示例
- Python PIL ImageOps.colorize()用法及代码示例
- Python PIL ImageGrab.grabclipboard()用法及代码示例
- Python PIL ImageChops.screen() and ImageChops.offset()用法及代码示例
- Python PIL Image.transpose()用法及代码示例
- Python PIL Image.tell()用法及代码示例
- Python PIL ImageChops.multiply()用法及代码示例
- Python Image转PDF用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.forms.ImageField。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。