多个对象querydict到列表

时间:2016-06-16 09:10:47

标签: javascript ajax django

我通过ajax将一些javascript对象作为对象数组发送到django视图。对象如下:

[{'oid':'id1','oiid':'iid1'},{'oid':'id2','oiid':'iid2'}]

我的阿贾克斯:

....
type : "POST",
data : {action:'pack_orders',
        order_dict:$checkedRows},
....

我可以在django视图中看到QueryDict的请求,如:

<QueryDict : {'order_dict[0][oid]':'id1','order_dict[0][oiid]':'iid1',
              'order_dict[1][oid]':'id2','order_dict[1][oiid]':'iid2'}>

如何在django视图中获取querydict的列表,如:

oid_list = ['id1','id2']
oiid_list = ['iid1','iid2']

views.py中的输出:

{'order_dict[0][oid]':'id1','order_dict[0][oiid]':'iid1',
 'order_dict[1][oid]':'id2','order_dict[1][oiid]':'iid2'}

编辑:

1)添加了语句print dict(request.POST)

中的views.py输出

1 个答案:

答案 0 :(得分:1)

我不确定您是否在JSON.stringifying之后发送order_dict。如果没有,我建议去做。在视图中将其作为json字符串接受,对其执行json.loads()。发布这个你有一个字典列表。

假设您将其存储在名为data的变量中,那么您可以执行以下操作

oid_list = [x.get('oid') for x in data]
oiid_list = [x.get('oiid') for x in data]

<强>输出:

oid_list - ['id1', 'id2']
oiid_list - ['iid1', 'iid2']

应该适合你。我不知道它是不是最好的解决方案,而是一个简单的解决方案。