我使用带有内联可编辑插件的自举表为笔记本电脑列表创建一个引导表。我的目标是在用户更改表后对csv文件进行更改,如下面的示例(Product :膝上型计算机)

我在下面创建了一个javascript函数,将Ajax数据发送到Django服务器。
// ajax to server
$(function () {
$( "#table" ).on("click" , 'button',function(event){
var selected_item = getSelectedRow(); //this will return selected row object
console.log(selected_item);
$.ajax({
type: "post",
url: '/update/',
data: {
'item': JSON.stringify(selected_item)
},
success: function (data) {
alert('success');
}
});
});
});下面是我的控制台日志的输出
(p类别已更改为Laptop2)

但是,当我试图从Django获取数据时。它给了我下面的输出,其中的(p类别没有更改为Laptop2)
{'webcam': 'WebCam', 'lannum': '2', 'condition': 'Refurbished', 'video2': 'GM204M [GeForce GTX 970M]', 'memorybanks': '8G 2133MHz/8G 2133MHz/', 'cpus': '1', 'customernotes': '', 'lanmodels': 'Killer E2400 Gigabit Ethernet Controller/WLAN QCA6174 802.11ac Wireless Network Adapter/', 'internalnotes': '', 'pline': 'Alienware', 'sku': 'LEN-LT-TPEdge-03BV001', 'cddvd': '', 'hddcapacity': '0.0G', 'coresthreads': '4 | 8', 'sound': 'Sound-Yes', 'pmodel': '15 R2', 'resolution': '1230x1000', 'ptype': 'Minitower', 'grade': 'GradeB:R2-Ready for Resale', 'touchscreen': 'Yes', 'hddqty': '0', 'pcategory': 'Laptop', 'processor': 'i7-6700HQ 2.60GHz', 'memory': '16G', 'serialnum': 'BFYNM72', 'video1': 'GM204M [GeForce GTX 970M]', 'hddmodels': '', 'manufacturer': 'Alienware', 'motherboard': 'Alienware 15 R2', 'batch': '03BV', 'hddserialnum': ''}我的Django视图函数:
@csrf_exempt
def update_page(request):
file_path = os.path.join(CSV_BASE_DIR, CURRENT_BATCH, '{}.csv'.format(CURRENT_BATCH))
if request.method == 'POST':
item = json.loads(request.POST.get('item'))
pprint.pprint(item)
overwrite_csv(file_path,item)
else:
print('no data back!')
return HttpResponse('yes')当我再次更改输入时,我注意到了。该值将被更改为laptop2。它似乎并没有像我所期望的那样节省价值。我想知道,我的Django服务器是否会在单击复选标记时立即获得相同的值?
谢谢你们都是先进的。
发布于 2022-07-03 12:27:14
确保数据源在列表和更新中都是相同的。
https://stackoverflow.com/questions/42591396
复制相似问题