You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DRF接收数字数组被解析为字符串的前端修复方案咨询

解决DRF接收multipart/form-data格式下数字数组被解析为字符串的问题

问题核心是你用JSON.stringify把数组转成字符串后,DRF会把这个字符串当成单个值处理,而PrimaryKeyRelatedField(many=True)需要的是多个独立的整数主键参数。在JS端可以通过以下方式修复:

  • 不要将数组序列化为JSON字符串,而是多次调用FormData的append方法,使用同一个字段名传入数组中的每个数字。

修改后的JavaScript代码:

const data = new FormData();
// 遍历数组,逐个添加同名字段
[1, 2].forEach(cargoId => {
  data.append("cargo", cargoId);
});
fetch(url, { method: "POST", body: data }).then(//<more code>

这样处理后,DRF会自动将多个cargo字段的值解析为整数数组,匹配PrimaryKeyRelatedField(many=True)的类型要求,不会再出现类型错误。如果你的数组是动态生成的,只需要遍历数组元素重复调用append即可。

内容的提问来源于stack exchange,提问作者Luciano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 16:25:22