【发布时间】:2020-08-30 04:05:14
【问题描述】:
当我从带有图像的反应前端提交表单时,服务器响应 "The submitted data was not a file. Check the encoding type on the form."。当我使用 Django RF 可浏览 API 时,我可以成功添加图像。那么这会是前端的问题吗?
VIEWS.PY
class PostListCreateview(generics.ListCreateAPIView):
queryset = Post.objects.all().order_by('id')
serializer_class = PostSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
parser_class = (FileUploadParser,)
def perform_create(self, serializer):
serializer.save(author=self.request.user)
Post 模型接受 title,body and pic 作为表单 POST 方法的参数。
反应前端
const [image,setImage] = useState(null)
const handlesubmit =()=>{
let endpoint = `/api/post/`;
apiService(endpoint,'POST',{title:title,body:body,pic:image}).then(data=>
console.log(data))};
return (<input type="file" onChange={(e)=>setImage(e.target.files[0])}/>
<Button onClick={handlesubmit} >Upload</Button>)
【问题讨论】:
标签: javascript python django reactjs django-rest-framework