#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
. Если он не существует, будет использоваться значение по умолчанию(второй аргумент).