如何在Pylons中获取类似PHP的POST数组

2 投票
1 回答
2530 浏览
提问于 2025-04-16 02:01

我有一个动态表单,我需要构建一些带有特定ID的数组。

比如:

<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">

在Pylons中,对于复选框的数组,我可以使用

request.POST[field].getall()

我该如何在Pylons中创建像PHP那样的数组呢?

谢谢。

1 个回答

2

你可以使用多字典对象的 .getall() 方法,举个例子:

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(),比如:

控制器:

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

撰写回答