我有一个非常简单的模型和表单,希望用户填写姓名,标题等,并上传图片。一切正常,但一旦用户尝试提交记录而不上传图像,则会收到Multivaluedictkey错误。我在字段定义中设置了null = true和blank = true。 :“photo = models.ImageField(upload_to ='media',null = True,blank = True)”。只要用户上传图像,媒体存储和检索也能正常工作。简而言之,我请求您帮助建议snything,这使我能够让用户提交记录而无需上传图像。
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 :(得分:1)
在您的代码中
newproject.photo = request.FILES['photo']
由于以下原因,您将获得MultiValueDictKeyError
1. request.FILES
没有名为photo
的密钥
2. request.FILES
可能有多个相同键值
如果是第二种情况,您应该使用request.FILES.getlist('photo')
[如果您使用相同的文件上传多个文件。在你的情况下,它是照片']