Django REST Framework无法获取React前端选中数据列表问题
Django后端获取React多选checkbox完整列表的解决方法
问题根源在于Django的QueryDict对象特性:默认get()方法仅返回同一键对应的最后一个值,要获取多选项的完整列表,需使用getlist()方法。
修改后端代码如下:
def post(self, request, pk=None): print(request.data) # 输出 <QueryDict: {'selectbut': ['service1', 'service2', 'service3'], 'selecttext': ['hello guys']}> # 用getlist替代get,获取所有选中项 selected_services = request.data.getlist("selectbut") for service in selected_services: print(service) # 依次打印service1、service2、service3
补充说明
QueryDict是Django专门处理表单数据的字典子类,针对同一键对应多值的场景(如多选checkbox、多选select),必须通过getlist()才能提取全部值。- 你的前端React代码无需修改,FormData已正确将所有选中的checkbox值以数组形式提交,
request.data的打印结果也验证了这一点。
内容的提问来源于stack exchange,提问作者LoneRanger
相关产品推荐
相关产品推荐

