python - 我怎样才能在 QueryDict 中获取我的参数?

标签 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 中获取我的参数?

最佳答案

这看起来不像预期的那样:

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

尤其不是这部分:u'params[nood_id]'。这意味着你的错误已经发生在 javascript 端 => 不知何故你的 params 对象被部分字符串化了?我不确定发生了什么,我觉得这很可疑。

在您的 Django View 中,您应该能够使用 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,
})

关于python - 我怎样才能在 QueryDict 中获取我的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46488148/

相关文章:

python - 如何用Python实现链式操作?

javascript - Ajax 新手,尝试在 div 中加载另一个页面,但在 Safari 中遇到问题

jquery - 通过 jQuery AJAX 传输数据到 Pyramid 后端问题

django - 如何扩展 Django Admin 模型 readonly_fields 而不必指定所有模型字段(但仍然可以看到它们)

django - TemplateSyntaxError 'staticfiles' 不是有效的标记库'

字典或列表操作的 Python 命名约定

python - 如何自动修复无效的 JSON 字符串?

javascript - 在 Javascript 中将 django 格式化为正确的格式?

python - 如何从 matplotlib 中的 .dat 文件读取多列,然后绘制到多个子图中

javascript - 使用 javascript 打印时不出现 Ajax 评级控件