Многозначная ошибка в /изменить часть/. В python django

#python #django #if-statement #file-upload #path

Вопрос:

Поэтому я пытаюсь создать систему загрузки изображений, и я делаю два разных типа изображений, статические и динамические

и я пытаюсь сделать другой акт/функцию для этого типа, поэтому я сделал два, если

такой, как этот,

 if len(request.FILES['img_dinamic']) != 0:
    part = WebPart.objects.get(part=partToChange)
    if len(part.dinamic_image) > 0:
        os.remove(part.dinamic_image.path)
    img_dinamic = request.FILES['img_dinamic']
else:
    img_dinamic = ""
 

а другой такой же, как этот

 if len(request.FILES['img_static']) != 0:
    img_static = request.FILES['img_static']
else:
    img_static = ""
 

и когда я пытаюсь запустить систему, появляется какая-то ошибка, подобная этой

 MultiValueDictKeyError at /change-part/
'img_static'
 

кто-нибудь может мне помочь ?

Ответ №1:

request.FILES представляет собой объект, подобный словарю(подкласс dict). Поэтому, когда вы пытаетесь получить доступ к ключу и если ключ не существует в словаре, dictionary[key] всегда поднимайте KeyError . Решение состоит в том, чтобы вместо этого использовать этот get метод.

 img_static = request.FILES.get('img_static', "")
 

Это позволит попытаться получить доступ к ключу img_static с request.FILES . Если он не существует, будет использоваться значение по умолчанию(второй аргумент).