Вопрос django: Как передать параметр списка, используя метод POST? - PullRequest
2 голосов
/ 03 января 2011

Предположим, параметр, который я хочу передать, называется printdata, а printdata=['a', 'b', 'c'].

Я использую "input type="hidden" name="alist" value={{printdata}}>", чтобы пройти параметр. Тем не менее, когда я пытаюсь получить параметр в views.py, используя следующий код:

params = request.POST

params["alist"] равно ['a', вместо ['a', 'b', 'c']. Я подозреваю что django идентифицирует конец параметров, используя ,.

Есть ли у вас какие-либо предложения или какие-либо другие методы для передачи параметра?

Ответы [ 4 ]

7 голосов
/ 03 января 2011

Используйте несколько скрытых полей, по одному для каждого значения, в своем HTML:

<input type="hidden" name="alist" value="1" />
<input type="hidden" name="alist" value="2" />
<input type="hidden" name="alist" value="3" />

На стороне сервера используйте request.POST.getlist, чтобы прочитать все значения в виде списка:

alist = request.POST.getlist('alist')
# 'alist' now contains ['1', '2', '3']
0 голосов
/ 19 мая 2016
alist = request.POST.get('alist')
0 голосов
/ 03 января 2011

Использование

request.POST.getlist('alist')

, чтобы получить значения.

0 голосов
/ 03 января 2011

Обязательно ставьте кавычки вокруг строки списка в своем HTML.т.е.:

<input type="hidden" name="alist" value="{{printdata}}">
...