我正在尝试在我的django后端中列出react应用程序中的所有选定项。我不明白接收到的数据格式是什么 www.example.com 是代码:
def post(self,request,pk=None):
print(request.data) //returns <QueryDict: {'selectbut': ['service1', 'service2', 'service3'], 'selecttext': ['hello guys']}>
for i in request.data.get("selectbut"):
print(i) //prints only the last data in the value here it prints service3
我想获得一个列表,其中包含列表或元组或迭代器中SelectBut的所有值
下面是我React代码:
import axios from 'axios';
function App() {
const submitform=(e)=>{
e.preventDefault()
const formdata=new FormData(e.target)
for (const i of formdata.values()){
console.log(i)
}
axios.post("http://127.0.0.1:8000/api/customer/resources/",formdata).then(
(response)=>console.log(response)
)
}
return (
<div className="App">
<form onSubmit={submitform}>
<input type='checkbox' name="selectbut" value="service1"/>service1
<input type='checkbox' name="selectbut" value="service2"/>service2
<input type='checkbox' name="selectbut" value="service3"/>service3
<input type='checkbox' name="selectbut" value="service4"/>service4
<input type='text' name="selecttext" />service4
<input type='submit' value="submit"></input>
</form>
</div>
);
}
export default App;
1条答案
按热度按时间nxagd54h1#
问题是,来自React应用程序的FormData在发送时是URL编码的,当Django接收到它时,它会将数据解析为QueryDict。如果使用。在QueryDict中的get(key)方法,它只返回与键相关的最新值。
要接收与键关联的所有值的列表,请使用getlist()函数而不是get():
您可以使用语法getlist(“selectbut”)获得与键“selectbut”连接的所有值的列表。所有选择的服务都应该打印出来,并且应该按计划运行。