我有一个问题,我想从 list 获取所有数据,所以我想循环所选项目中的每个数据并将其插入数据库,
目前,当我打印 ['[object Object]', '[object Object]'], 时它返回这样的数据,
如何将这些数据一一插入?或者只是一张一张打印?
我有这个列表,它是 selected_items 我循环数据,然后将其传递给 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);
}
当控制台 selected_items 时就像这样
所以现在我想使用ajax将这些列表传递给django
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)
打印出来是这样的
['[object Object]', '[object Object]']
更新代码如何循环数据?这是我尝试过的,但它根本没有反映数据
multiple_list: JSON.stringify(selected_items)
view.py
out_items = request.POST.get('multiple_list')
for i in out_items:
print(out_items1[i])
**如何打印或插入数据库?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
当您执行
selected_items.join(',')时,您正在获取{'stock_id': 5, 'quantity': 15}的__str__(或等效的 js),它恰好是[object Object ]所以我建议只使用 Json,它将对整个嵌套列表字典进行编码,并将作为 python 中的普通列表字典加载
Javascript
$.ajax({ type: "POST", url: "{% url 'sales-item' %}", data:{ multiple_list: JSON.stringify(selected_items), item_size: selected_items.length, } }).done(function(data){...Python
stock_list = json.loads(request.POST.get('multiple_list')) print(type(stock_list)) #
print(stock_list)
# [
# {'stock_id': 5, 'quantity': 15},
# ]
编辑
是的!,你只需像普通的嵌套列表字典一样循环它
stock_list = json.loads(request.POST.get('multiple_list')) for stock_list_item in stock_list: obj, was_created_bool = MyModel.objects.get_or_create( stock_id=stock_list_item['stock_id'], quantity=stock_list_item['quantity'] )但是!如果您知道您将要创建每个项目,我建议使用
bulk_createstock_list = json.loads(request.POST.get('multiple_list')) bulk_create_list = [] for stock_list_item in stock_list: bulk_create_list.append( MyModel( # Note: NO .object stock_id=stock_list_item['stock_id'], quantity=stock_list_item['quantity'] ) ) # Creates all items in one query MyModel.objects.bulk_create(bulk_create_list)&额外花絮
这些的工作原理都是一样的! (动态创建过滤器非常方便;))
# setup stock_list_item = {'stock_id': 5, 'quantity': 15} # ---- MyModel.objects.get_or_create( stock_id=stock_list_item['stock_id'], quantity=stock_list_item['quantity'] ) # == MyModel.objects.get_or_create(**{'stock_id': 5, 'quantity': 15}) # == MyModel.objects.get_or_create(**stock_list_item)