我在django上传图片,我想在forms.py中验证它的格式和大小
class CreateEventStepFirstForm(forms.Form):
user_image = forms.ImageField(required = True, widget=forms.FileInput(attrs={
'class' : 'upload-img',
'data-empty-message':'Please upload artist image, this field is required'
}))
在上传此图片时我想首先验证它的格式,表单只允许用户上传png和jpeg图像,并且用户必须上传最大700 * 500尺寸的图像,如果图像低于此尺寸,则此表格不应该被验证,如果图像大于1200 * 1000像素,在这种情况下它应该将图像大小调整为700 * 500而不影响图像质量。
我用于上传文件的视图是: -
def create_new_event(request, steps):
if request.method == 'POST':
stepFirstForm = CreateEventStepFirstForm(request.POST, request.FILES)
if stepFirstForm.is_valid():
myfile = request.FILES['user_image']
fs = FileSystemStorage()
filename = fs.save('event_artists_images/'+myfile.name, myfile)
uploaded_file_url = fs.url(filename)
return render(request, 'home/create-new-event.html', {'stepFirstForm':stepFirstForm})
答案 0 :(得分:0)
您应该考虑编写自己的自定义验证器。您可以在documentation
中阅读这些内容一旦您创建了一个检查这些值的验证器,您就可以通过几种不同的方式将其附加到表单。