React.js多选值提交Django REST API多对多字段格式适配问题求助
解决方案
你只需要在表单提交的handleSubmit方法中对state.value做一次数组映射转换即可,具体实现如下:
步骤1:添加handleSubmit方法
async handleSubmit(e) { e.preventDefault(); // 核心转换逻辑:将选中的多选值数组转换为适配后端的格式 const submitNewspaperList = this.state.value.map(item => ({ // 此处键名可根据Django REST API多对多字段要求的参数名自由调整 "newspaper": item.label })); // 提交到后端示例代码 try { const res = await axios.post('你的Django接口地址', { // 其他业务参数自行补充 newspaper_list: submitNewspaperList }); // 提交成功后的后续逻辑自行实现 console.log('提交成功', res); } catch (err) { // 错误处理逻辑自行实现 console.error('提交失败', err); } }
补充说明
- 如果Django多对多字段要求提交报刊ID而非名称,只需把转换逻辑里的
item.label替换为item.value即可。 - 现有代码中渲染选中值的部分存在拼写错误:
v.lable需修改为v.label,否则选中的报刊名称无法正常显示。
内容的提问来源于stack exchange,提问作者Ravindrakumara
相关产品推荐
相关产品推荐

