如何在QueryDict中获取我的参数?

时间:2017-09-29 11:46:19

标签: python ajax django

我使用ajax将数据传递给views.py:

var params = {'nood_id':'f55dbe56-7fa8-4d13-8e1e-2dc67499b6ac'}
$.ajax({
    type:'post',
    url:'/api/nood_detail/',
    data:{'params':params},
    dataType:'json',
    success:success_func,
})

在views.py中,request.POST如下:

<QueryDict: {u'params[nood_id]': [u'f55dbe56-7fa8-4d13-8e1e-2dc67499b6ac']}>

我无法使用request.POST.get(“params”)获取参数,也无法获取nood_id

如何在QueryDict中获取我的参数?

1 个答案:

答案 0 :(得分:1)

这看起来不像预期:

<QueryDict: {u'params[nood_id]': [u'f55dbe56-7fa8-4d13-8e1e-2dc67499b6ac']}>

尤其不是这部分:u'params[nood_id]'。这意味着你的错误已经发生在javascript side =&gt;不知怎的,你的params对象被部分字符串化?我不知道发生了什么事,对我来说看起来很可疑。

在你的Django视图中,你应该可以使用request.POST.get('nood_id')或者你想要的结构 - 但你的JS必须正确发送它。

尝试将JS更改为:

var params = {'nood_id':'f55dbe56-7fa8-4d13-8e1e-2dc67499b6ac'}
$.ajax({
    type: 'post',
    url: '/api/nood_detail/',
    data: params,
    dataType: 'json',
    success: success_func,
})