当Djano Imagefield为空时,MultiValueDictKeyError

时间:2016-11-16 18:22:04

标签: django-models

我有一个非常简单的模型和表单,希望用户填写姓名,标题等,并上传图片。一切正常,但一旦用户尝试提交记录而不上传图像,则会收到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

1 个答案:

答案 0 :(得分:1)

在您的代码中

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

由于以下原因,您将获得MultiValueDictKeyError  1. request.FILES没有名为photo的密钥  2. request.FILES可能有多个相同键值

如果是第二种情况,您应该使用request.FILES.getlist('photo') [如果您使用相同的文件上传多个文件。在你的情况下,它是照片']