在django问题中从POST获取数组

在django问题中从POST获取数组,django,Django,客户端: $fk_fields=[]; $fk_fields.push({'a':1,'b':2}); $fk_fields.push({'a':3,'b':4}); $data = {'fk_fieldss': $fk_fields}; $.ajax({ type: "POST", url: "../getFormMetaData/", cache:false, data: $data, success: cr

客户端:

$fk_fields=[];
$fk_fields.push({'a':1,'b':2});
$fk_fields.push({'a':3,'b':4});

$data = {'fk_fieldss': $fk_fields};

$.ajax({
        type: "POST",
        url: "../getFormMetaData/",
        cache:false,
        data: $data,
        success: createZoomDialog,
        error: displayAjaxError
    });
$data = {'fk_fieldss': JSON.stringify($fk_fields)};
服务器端:

fk_fields=request.POST.getlist('fk_fieldss')
print fk_fields
fk_fields = json.loads(request.POST['fk_fieldss'])
无论我尝试什么都没有成功。当其他非aray值正常时,我总是得到一个空字符串。如果我打印request.POST,我会在POST中看到值,但我无法从中获取数组。为什么?

更新 以下是打印请求的外观。POST:

<QueryDict: {u'fk_fieldss[0][b]': [u'2'], u'fk_fieldss[1][b]': [u'4'], u'fk_fieldss[0][a]': [u'1'], u'fk_fieldss[1][a]': [u'3']}>
服务器端:

fk_fields=request.POST.getlist('fk_fieldss')
print fk_fields
fk_fields = json.loads(request.POST['fk_fieldss'])

您需要在js端将数组编码为json字符串,然后在django中对其进行解码:

fk_fields = json.loads(request.POST)['fk_fieldss']
在js中

然后在django:

fk_fields = json.loads(request.POST)['fk_fieldss']

试试:
getlist('fk_fieldss[])
不,还是一样…当你打印请求时你看到了什么?POST?我更新了我的问题试试这个请求。POST.lists()甚至请求。POST.values()类型错误:预期的字符串或缓冲区现在我有csrf令牌问题。。。他在$data中,但现在数据是json对象。。。