在django问题中从POST获取数组

时间:2014-01-28 16:06:30

标签: 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: createZoomDialog,
        error: displayAjaxError
    });

服务器端:

fk_fields=request.POST.getlist('fk_fieldss')
print fk_fields

我尝试什么都没有成功。总是我得到一个空字符串,而其他非aray值是好的。如果我print request.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']}>

客户方:

$data = {'fk_fieldss': JSON.stringify($fk_fields)};

服务器端:

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

1 个答案:

答案 0 :(得分:1)

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

在js

data: JSON.stringify($data),

然后在django:

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