验证上传图片的大小和格式,并在django

时间:2016-10-18 12:40:17

标签: python django

我在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})

1 个答案:

答案 0 :(得分:0)

您应该考虑编写自己的自定义验证器。您可以在documentation

中阅读这些内容

一旦您创建了一个检查这些值的验证器,您就可以通过几种不同的方式将其附加到表单。