检索在Django中通过Ajax发送的发布变量

时间:2019-01-15 10:49:55

标签: ajax django post

我正在处理一个通过CSV文件从另一个系统导出的银行/结帐项目表。它们被导入到视图中并检查是否重复,然后再以HTML表的形式呈现给用户进行最终检查。

一旦选中,它们就会通过AJAX发送到服务器,以便可以将它们添加到Django模型中。包括CSRF在内的所有内容都可以正常运行,但是尽管可以看到它,但我无法访问POSTed变量!

不幸的是,由于有80多个行要处理,因此制作隐藏表单是不可行的。

我的 JavaScript 如下:

$.ajax({
    type: 'POST',
    url: '......./ajax/handleImports/',
    data: entriesObj,
    success: function (data) {
        if (data.response && data.response) {
            console.log("Update was successful");
            console.log(data.entries)
        } else {  ... } 
    },
    error: function() { ... }

entriesObj在哪里

var entriesObj = JSON.stringify({ "newentries": newEntries });
console.log(entriesObj)

,并转储到console.log时,如下所示:

{"newentries":[{"Include":"","Upload ID":"0","Date":"2019-01-09", ... }

现在当我返回整个request.POST对象作为data.entry时,在 view.py 中使用

context['entries'] = request.POST
return JsonResponse(context)

我明白了

{"{"newentries":[{"Include":"","Upload ID":"0","Date":"2019-01-09", ... }

但是,如果我尝试通过以下方式检索新条目:

entries = request.POST.get('newentries', None)
context['entries'] = entries
return JsonResponse(context)

console.log(data.entries)将输出null吗?

我应该如何访问POSTed条目Obj?

1 个答案:

答案 0 :(得分:2)

数据为JSON,您需要从request.body获取值并进行解析。

data = json.loads(request.body)
entries = data.get('newentries')