我通过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)
答案 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']
应该适合你。我不知道它是不是最好的解决方案,而是一个简单的解决方案。