通过 POST 将文本数组发送到 Django,无法获取数组,而是获取字符串

问题描述 投票:0回答:1

我正在将此数据发送到 Django,这些文本来自多个 CKEditors

chk_vals = ["Some text","Other text"];
const data = new URLSearchParams();
data.append("csrfmiddlewaretoken", "{{csrf_token}}");
data.append("tmplData", JSON.stringify(chk_vals));

fetch(uri, {
        method: 'post',
        body: data,
    })
    .then(response => response.json())
    .then(data => {

来自Chrome的网络: tmplData: ["一些文本","其他文本"]

现在姜戈:

data = request.POST
templateArr = data.getlist('tmplData')
templateList = list(templateArr)

templateList 的长度为 1,它将它作为一个字符串获取,我不能用 ',' 来分割它,因为这些文本也可以包含 ','。

我也尝试过 templateArr = data.getlist('tmplData[]')

并且在没有 JSON.stringify 的情况下发送,但没有任何效果

data = request.POST
templateArr = data.getlist('tmplData[]')
templateList = list(templateArr)

并且这个变量 templateArr 是空的

javascript arrays django post
1个回答
0
投票

尝试从前端将值作为单独的字段发送,如下所示:

chk_vals = ["Some text", "Other text"];
const data = new URLSearchParams();
data.append("csrfmiddlewaretoken", "{{csrf_token}}");
chk_vals.forEach(value => data.append("tmplData", value));
fetch(uri, {
    method: 'POST',
    body: data,
})
.then(response => response.json())
.then(data => console.log(data));

然后尝试通过 Django 后端访问它,如下所示:

templateArr = request.POST.getlist('tmplData') # templateArr = ["Some text", "Other text"]
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.