Невозможно получить доступ к массиву, переданному по почте - PullRequest
1 голос
/ 03 июля 2019

Я обрабатываю форму, передавая (по почте) данные в представление.Из представления, если я печатаю весь объект request.POST, я получаю:

<QueryDict: {'csrfmiddlewaretoken': ['<omitted>'], 'doctype-name': ['a7'], 'doctype-validita': ['1'], 'projects': ['1', '2']}>

Если я пытаюсь прочитать или напечатать запрос. POST ['projects'], я получаю только последнее значение, т.е. 2

1 Ответ

0 голосов
/ 03 июля 2019

A QueryDict представляет собой словарную коллекцию и, таким образом, может возвращать только один элемент, поскольку в противном случае он (полностью) не соблюдает словарные контракты.

Вы можете использовать метод QueryDict.getlist(..) [Django-doc] здесь:

request.POST<b>.getlist('projects')</b>  # returns ['1', '2']

Как сказано в документации:

QueryDict.getlist(key, default=None)

Возвращает список данных с запрошенным key. Возвращает пустой список , если key не существует и значение default не было предоставлено. Гарантируется, что вы вернете список, если только значение default не является списком.

Тот факт, что он возвращает последнее значение, также задокументирован :

QueryDict.__getitem__(key)

Возвращает значение для данного key. Если key имеет более одного значения, возвращается последнее значение . Повышает django.utils.datastructures.MultiValueDictKeyError, если key не существует. (Это подкласс стандарта Python KeyError, поэтому вы можете использовать KeyError.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...