通过ajax将数组发送到django

时间:2014-08-08 13:24:16

标签: javascript python json django post

我正在尝试通过AJAX POST将Javascript数组发送到django视图。

我使用JSON.stringify:

将此数组存储在隐藏输入中
$('#id_uuids').val(JSON.stringify(arr));

这是我尝试发送它的方式:

$.post("/ajax/generateGallery",{uuids: $('#id_uuids').val()},function(response){
    resp = JSON.parse(response);
    alert(resp.html);
},"json");

浏览器控制台显示正在发送的数据如下所示:

uuids:["6ecbe35b-0b77-4810-aa9a-918fecaeef13","e41f52f7-721b-4d44-b7d6-bbb275182d66"]

但是,我无法在我的django视图中使用它。我试过了:

uuids = request.POST.getlist('uuids')
logger.info(uuids)
logger.info(type(uuids))

返回:

[08/Aug/2014 15:20:00] INFO [app.rest_client:307] [u'["89a26646-6000-4c48-804a-69abcc496fd8"]']
[08/Aug/2014 15:20:00] INFO [app.rest_client:308] <type 'list'>
[08/Aug/2014 15:20:00] INFO [app.rest_client:312] Generate HTML gallery for photo ["89a26646-6000-4c48-804a-69abcc496fd8"]

因此,Django将列表发送为单个元素。如何强制python代码将此数据视为列表并能够迭代?

1 个答案:

答案 0 :(得分:1)

尝试对发布的数据进行JSON解码

uuids = json.loads(request.POST.get('uuids'))

如果您之前加载了一些json模块,例如

import simplejson as json