2016-11-16 37 views
0

我有一個非常簡單的模型和表單,它需要用戶填寫名稱,標題等並上傳圖像。一切工作正常,但只要用戶試圖提交記錄而沒有上傳圖像,那麼它會得到Multivaluedictkey錯誤。我在字段定義中設置了null = true和blank = true。 :「photo = models.ImageField(upload_to ='media',null = True,blank = True)」。只要用戶上傳圖片,媒體存儲和檢索也可以正常工作。簡而言之,我要求您提供幫助,建議snything使我可以讓用戶提交記錄,而不必上傳圖片。當Djano Imagefield爲空時MultiValueDictKeyError

Traceback: 
File "/home/sampledemo/.virtualenvs/django18/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    132.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/home/sampledemo/mysite/polls/views.py" in someview 
    45.    newproject.photo = request.FILES['photo'] 
File "/home/sampledemo/.virtualenvs/django18/local/lib/python2.7/site-packages/django/utils/datastructures.py" in __getitem__ 
    322.    raise MultiValueDictKeyError(repr(key)) 

Exception Type: MultiValueDictKeyError at /someview/ 
Exception Value: "'photo 

回答

0

在你的代碼有

newproject.photo = request.FILES['photo'] 

你會得到MultiValueDictKeyError由於以下原因
1. request.FILES沒有關鍵命名photo
2. request.FILES可能有多個值同樣的鑰匙

如果是第二種情況,你應該使用request.FILES.getlist('photo') [如果你上傳多個文件相同。在你的情況下,它是'照片']