我正在尝试使用django rest框架上传图片。但是我有一个问题,当我使用邮递员表单时,它可以成功上传图像,但是当我尝试在邮递员中将json作为行键入时,它会向我返回此错误。
”提交的数据不是文件。请检查 形式。”
这是我的代码:
serializer.py
class UserImageCreateSerializer(serializers.HyperlinkedModelSerializer):
user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())
class Meta:
model = UserImages
fields = ('user', 'image',)
view.py
class UserImageAPICreateView(ListCreateAPIView):
queryset = UserImage.objects.all()
serializer_class = UserImageCreateSerializer
permission_classes = [AllowAny, AllowAnonymous]
我的请求
{
“用户”:79,
“ image”:“ /path/to/image.jpg” }
注意:当我使用邮递员表格时,它可以成功上传,而当使用django rest框架HTML表格时,它也可以工作
我不知道我犯了什么错误。
所以,任何人都有解决方案,请帮助我。
答案 0 :(得分:2)
仅通过在json上传数据中提供文件路径,您无法上传图像文件 像这样:
{
"image": "/path/to/image.jpg"
}
如果您这样发送,django会将图像数据视为普通字符串而非文件
这就是为什么您不断收到此错误的原因
"The submitted data was not a file. Check the encoding type on the form."
您需要发送图像数据,而不是图像路径。
这是上传图片的python请求示例 https://stackoverflow.com/a/45611449/2679465