У меня есть поле ввода формы HTML, которое возвращает список словарей, которые я хочу получить значения при использовании PYthon в Django View.
Форма возвращает:
request.POST['tags'] returns => [{"value":"summer"},{"value":"winter"}]
Когда я пытаюсьчерез него, используя [tag['value'] for tag in request.POST['tags']]
для получения значений, я получаю TypeError: string indices must be integers
.
Однако, если я вручную копирую результаты поля ввода в командную строку и перебираю строку за строкой, он работает как положено:
>>> test = [{"value":"summer"},{"value":"winter"}]
>>> test
>>> [{'value':'summer'},{'value':'winter'}]
>>> [tag['value'] for tag in test]
>>> ['summer', 'winter']
Что происходит?
Обновлено, чтобы добавить печать 3 различных запросов. Результаты POST:
request.POST => <QueryDict: {'tags': ['[{"value":"summer"},{"value":"winter"}]']}>
request.POST.values => <bound method MultiValueDict.values of <QueryDict: {
'tags': ['[{"value":"summer"},{"value":"winter"}]']}>>
request.POST[tags] => [{"value":"summer"},{"value":"winter"}]