我在djangorestframework中做了几个API。
我可以使用api的html形式进行测试,就像在命令行中使用curl一样。
现在,我有一个模型的api,其中一个没有ImageField。
我不知道要使用哪个curl命令。
使用我在json格式的fot post操作之前使用的语法,它将是:
curl -X POST -S -H 'Content-Type: application/json' -u "username:password" --data-binary '{"otherfields":"something", "photo":"/home/michel/test.jpg"}' 127.0.0.1:8000/api/v1/
但在这种情况下,照片将不会被保存并留空(照片是可选字段)
添加
-T /home/michel/test.jpg
我收到一条错误消息,说127.0.0.1:800/api/v1/test.jpg作为URL不存在。在djangorestframework的测试html形式中,一切正常。
使用
-F
选项,它说我一次只能执行1个请求...我还从数据二进制中删除了数据类型
任何人都可以帮助我如何在1个命令中同时使用图像和json中的其他数据制作此curl post。
最佳答案
经过漫长的困惑之后,这似乎可以解决问题:
-F
参数Accept
(不使用Content-Type
)@
指示要上传的本地文件curl -X POST -S \
-H 'Accept: application/json' \
-u "username:password" \
-F "otherfields=something" \
-F "photo=@/home/michel/test.jpg;type=image/jpg" \
http://127.0.0.1:8000/api/v1/
顺便说一句,我知道所有这些都在curl的文档站点上,但是由于有很多可供选择的选项,因此只错过了所有这些示例。
关于django - 使用json使用djangorestframework将图像上传到imagefield并使用CURL对此进行测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11398696/