I'm sending this data to Django, these texts are from multiple 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 => {
It's from Chrome's network: tmplData: ["Some text","Other text"]
Now Django:
data = request.POST
templateArr = data.getlist('tmplData')
templateList = list(templateArr)
And the length of the templateList is 1, it is getting it as one string and I cannot split it with ',' because these texts can contain ',' too.
I also tried templateArr = data.getlist('tmplData[]')
and sending without JSON.stringify, but nothing works
data = request.POST
templateArr = data.getlist('tmplData[]')
templateList = list(templateArr)
and this variable templateArr is empty
Try sending values from frontend as individual fields like below:
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));
And then try accessing it via your Django backend like below:
templateArr = request.POST.getlist('tmplData') # templateArr = ["Some text", "Other text"]