2015-06-23 83 views
0

我想從一個簡單的HMTL形式,我得到了以下錯誤上傳一個圖片文件:的Django節省形成圖像文件問題

「MultiValueDict」對象有沒有屬性「_committed」

我我沒有以這種方式使用表單原因,我需要一次上傳多個文件,並且我知道Djangoforms只允許一次上傳一個文件。

因此,使用正常的方式似乎不工作...

的代碼結構如下:

Models.py

class ProfileImage(models.Model): 
    account_id = models.IntegerField(primary_key=True) 
    image = models.ImageField(upload_to='profile/%Y/%m/%d') 
    profile = models.CharField(max_length=512, blank=True) 
    description = models.CharField(max_length=255, blank=True) 
    class Meta: 
     managed = False 
     db_table = 'ProfileImage' 

的Html

<form id="fileinfo" name="fileinfo" action="profileimage" enctype="multipart/form-data" method="post" > 
     {% csrf_token %} 
     <table> 
      <tr> 
      <input type="file" size="60" id="myfile" name="myfile" multiple="false" value="Profile Picture" 
      accept="image/gif, image/jpeg, image/png"> 
      </tr> 
      <tr> 
      <input type="submit" value="Upload" /> 
      <div id="accresult" name="accresult"></div> 
      </tr> 
     </table> 
    </form> 

Views.py

def profile_image(request): 
    profile_image = ProfileImage(account_id=request.session.get('memberid', False), image=request.FILES, profile='', description='') 
    try:   
     print 'Userid: ', profile_image.account_id 
     print 'File sent...', profile_image.image 
     profile_image.save() 
    except Exception as err: 
     print 'Error: ', err.message 
    useraccount = request.session.get('useraccount', False) 
    return render(request, 'profileImage.html', {'useraccount': useraccount, 'image': profile_image}) 

試圖save()當錯誤出現我剛纔想在許多方面的參數到達正確但是這樣會很感激你的幫助。

+0

什麼是錯誤?什麼打印'錯誤:',err.message顯示? – user1269942

回答

0

request.FILES是文件列表。您需要指定要將哪個文件傳遞給參數image。像這個。

profile_image = ProfileImage(account_id=request.session.get('memberid', False), image=request.FILES[0], profile='', description='') 

這不是很好,因爲如果沒有文件它會引發異常。您可能需要使用Django form才能獲得更好的表單處理。