Ich habe ein Problem, ich möchte alle Daten von list
erhalten, also möchte ich alle Daten im ausgewählten Element durchlaufen und sie in die Datenbank einfügen.
Wenn ich derzeit ['[object Object]', '[object Object]']
drucke, werden Daten wie diese zurückgegeben:
Wie füge ich diese Daten einzeln ein? Oder einfach einzeln ausdrucken?
Ich habe diese Liste, die selected_items ist. Ich schleife die Daten und übergebe sie dann an Ajax
selected_items = []; for (var i = 0; i < checkBoxes.length; i++) { var selected_obj ={ stock_id: checkBoxes[i].id, quantity: row.cells[3].innerHTML } selected_items.push(selected_obj); }
Wenn die Konsole selected_items so aussieht
Jetzt möchte ich diese Listen mit Ajax an Django übergeben
console.log(selected_items); $.ajax({ type: "POST", url: "{% url 'sales-item' %}", data:{ multiple_list: selected_items.join(','), item_size: selected_items.length } }).done(function(data){...
views.py
out_items = request.POST.getlist('multiple_list[]') print(out_items)
So sieht es gedruckt aus
['[object Object]', '[object Object]']
Aktualisierter CodeWie schleife ich Daten? Das habe ich versucht, aber es spiegelt überhaupt nicht die Daten wider
multiple_list: JSON.stringify(selected_items)
view.py
out_items = request.POST.get('multiple_list') for i in out_items: print(out_items1[i])
**Wie drucke ich aus oder füge es in die Datenbank ein?
当您执行
selected_items.join(',')
时,您正在获取{'stock_id': 5, 'quantity': 15}
的__str__
(或等效的 js),它恰好是[object Object ]
所以我建议只使用 Json,它将对整个嵌套列表字典进行编码,并将作为 python 中的普通列表字典加载
Javascript
Python
编辑
是的!,你只需像普通的嵌套列表字典一样循环它
但是!如果您知道您将要创建每个项目,我建议使用
bulk_create
&额外花絮
这些的工作原理都是一样的! (动态创建过滤器非常方便;))