0

我是 django 的初学者,我面临一个问题,即如何将图像从 django 表单保存到数据库,但 image=check.cleaned_data.get('pro_image') 返回 None(ImageField)。

#forms.py
         class Up(forms.Form):
             STATUS=(
                  ('Sale','Sale'),
                  ('Rent','Rent'),
                  )
             status=forms.ChoiceField(choices=STATUS)
             pro_image=forms.ImageField(required=False)
                
#views.py
                    
def create(request):
     form=Up()
     context={'form':form}
     check=Up(request.POST or None)
     if request.method == 'POST':
        if check.is_valid():
           image=check.cleaned_data.get('pro_image')
           status=check.cleaned_data.get('status')
           print(image)
           print(status)
           try:
              up=Uploaded()
              if image==None:
                 up.image='/media/default/item_default.png'
              else:
                 up.image=image
                 up.status=status
                 up.save()
                 except ObjectDoesNotExist:
                 return render(request,"create.html",context)
         return render(request,"create.html",context)
     return render(request,'create.html',context) 
                     
#modles.py
                    
 class Uploaded(models.Model):
     image=models.ImageField(upload_to='media/test')
     status=models.CharField(max_length=10)

4

1 回答 1

0

您应该更改check=Up(request.POST or None)check=Up(request.POST, request.FILES or None),然后在 html 中的表单标记中它应该是<form method='post' enctype='Multipart/form-data'>

于 2020-06-24T11:14:08.280 回答