опоры request.POST, получающие массив как в php - PullRequest
2 голосов
/ 29 июля 2010

У меня есть динамическая форма, я должен выстроить некоторый массив записей, чтобы указать поле с некоторым идентификатором.

Например:

<input type="checkbox" name="field[124][]" value="1">
<input type="checkbox" name="field[124][]" value="2">

В php я могу просто получить значение и ключ.

foreach($_POST as $key => $value){
if(is_array($value){
  foreach($value as $key2 => $value2){
  //i get key=>124 and all values for this key
   }
}
}

<input type="checkbox" name="field" value="1">
<input type="checkbox" name="field" value="2">

В пилонах для массива флажка я могу использовать

request.POST[field].getall()

Как мне создать почтовый массив в пилонах, как в PHP?

Спасибо.

1 Ответ

2 голосов
/ 31 июля 2010

Вы можете использовать .getall () объекта multidict, например:

html:

<input type="checkbox" name="field[124][]" value="1">
<input type="checkbox" name="field[124][]" value="2">

контроллер:

values = request.POST.getall('field[124][]')
# >>> values
# [u'1', u'2']

другим способомполучить этот список можно с помощью .dict_of_lists (), пример:

controller:

d = request.POST.dict_of_lists()
values = d['field[124][]']
# >>> d
# {'field[124][]':[u'1', u'2']}
# >>> values
# [u'1', u'2']
...