-
- 默認小部件:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。