将图像从媒体根目录保存到Django Rest序列化程序
我目前正在从事一个项目,该项目允许移动应用程序用户将图像上传到Django服务器 以下是我对用户POST请求的看法: 类图像详细信息视图集(APIView): My ImageDetails浏览器:将图像从媒体根目录保存到Django Rest序列化程序,django,image,serialization,django-rest-framework,httprequest,Django,Image,Serialization,Django Rest Framework,Httprequest,我目前正在从事一个项目,该项目允许移动应用程序用户将图像上传到Django服务器 以下是我对用户POST请求的看法: 类图像详细信息视图集(APIView): My ImageDetails浏览器: class ImageDetailsSerializer(serializers.ModelSerializer): class Meta: model = ImageDetails fields= ('image','status','category'
class ImageDetailsSerializer(serializers.ModelSerializer):
class Meta:
model = ImageDetails
fields= ('image','status','category', 'user')
代码总是返回HTTP 400错误,这意味着序列化程序无效
以下是我尝试应用但在这种情况下无效的解决方案:
data1={'image':媒体文件名,'category':1,'status':'Y','user':user}
更改为img,但它返回TypeError:不可JSON序列化
错误媒体url/img.jpg
,它将返回相同的错误 class ImageDetailsSerializer(serializers.ModelSerializer):
image = serializers.ImageField(use_url=True)
class Meta:
model = ImageDetails
fields= ('image','status','category', 'user')
data1
更改为request.data
的副本,并将键“user”合并到新的dict中这个问题的答案是使用Django额外字段插件:D
阅读了解更多详细信息。我已尝试通过添加
request.data['image']=media\u文件名request.data['category']=1
request.data['status']=Y'
request.data['user']=user
来编辑request.data['user']=user然后将我的请求更新为serializer=ImageDetailsSerializer(data=request.data)
但我仍然有400个错误(序列化程序无效)。我认为您可以从请求将“图像”“状态”“类别”“用户”添加到post参数中。如果无效,可以打印验证错误的详细信息。
class ImageDetailsSerializer(serializers.ModelSerializer):
image = serializers.ImageField(use_url=True)
class Meta:
model = ImageDetails
fields= ('image','status','category', 'user')