我正在尝试使用 django rest 框架将图像和一些嵌套参数发布到 api。我正在尝试设置一个带有 -F 标志的卷曲,如此处讨论,以及此处讨论的嵌套参数:
curl -X POST -S -H 'Accept: application/json' -F "customer[name]=foo&customer[email]=foo@bar.com&customer[zipcode]=1076AL&customer[city]=Amsterdam&customer[address]=foobar" -F "photo=@/Users/vincentvanleeuwen/Desktop/tmp/accord.jpg;type=image/jpg" http://localhost:8000/api/orders/
但我得到以下回应:
{"customer":{"city":["This field is required."],"email":["This field is required."],"zipcode":["This field is required."],"name":["This field is required."]}}
我在 -F 标志下的嵌套似乎有问题,因为如果我像这样发布嵌套变量,它会起作用:
curl -X POST -S -H "Content-Type: application/json" -d '{"customer":{"name":"Adriaan","email":"adriaan@adriaan.com","zipcode":"1901ZP","address":"caravan","city":"Verweggistan"}}' http://localhost:8000/api/orders/
知道我做错了什么吗?任何帮助将不胜感激!
尝试为每个参数使用单独的 -F 标志?来自卷曲手册:
模拟使用 -F 的填写表单。假设您填写三个字段 在表单中。一个字段是要发布的文件名,一个字段是您的 名称和一个字段是文件描述。我们要发布文件 我们写了名为"Cooltext.txt"。让 curl 做发布 这些数据而不是您喜欢的浏览器,您必须阅读 表单页的 HTML 源,并查找输入字段的名称。 在我们的示例中,输入字段名称为"文件"、"您的姓名"和 "文件描述"。
curl -F "file=@cooltext.txt" -F "yourname=Daniel" ' -F "filedescription=Cool text file with cool text inside" ' http://www.post.com/postit.cgi