【问题标题】:multiple object querydict to lists多对象查询字典到列表
【发布时间】:2016-10-17 16:59:37
【问题描述】:

我通过 ajax 将一些 javascript 对象作为对象数组发送到 django 视图。对象是这样的:

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

我的 ajax:

....
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 输出

【问题讨论】:

  • 您是否尝试在您的视图中打印order_dict?输出是什么?

标签: javascript ajax django


【解决方案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']

应该适合你。我不知道它是否是最好的解决方案,但很简单。

【讨论】:

    猜你喜欢
    • 2018-01-14
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2018-07-30
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多