Ajax发送多选框的值的bug

在写一个小项目时,需要从前端选择作者有哪些,下拉多选框,我通过jq获取selected的值正常获取,然后通过ajax改善Post请求到后台与数据库交互。一直获取不到authors的值,原来这里存在一个bug.经过我打印出request.POST数据后:

如下,可以看到authors字段后面跟着两个括号,这样在后台通过authors字段获取它的值时,只能获取到空。

{'csrfmiddlewaretoken': ['p3GXS5PZN1Dq9qhPMIOtwTaFZtq2aAQa4b8kfFDsdd6WOtVJel8JAs2GmwscFOPD'], 'title': [
'go2'], 'price': ['120.00'], 'publishDate': ['2019-10-15'], 'authors[]': ['1', '2'], 'publish': ['1']}>

经朋友指点,需要在ajax请求中加上下面这句:

  traditional: true,

这样就能正常获取到数据了。

同时,当存在多选时,后台获取POST中的对应字段的值一定要用request.POST.getlist('authors'),否则 request.POST.get('authors'), request.POST['authors']都不能正常获取到值。

上一篇:Python 闭包

下一篇:Django中 页面与模态框数据传输