【发布时间】:2021-08-08 00:34:59
【问题描述】:
我正在尝试通过向 Django Rest Framework 后端发出的POST 请求保存字符串、浮点数和图像:
# My view:
class CreatePost(APIView):
# tried with and without parser:
# parser_classes = [FormParser, MultiPartParser]
def post(self, request):
serializer = PostSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save(user_id=request.user.pk)
return Response(serializer.data, status=201)
return Response(serializer.errors, status=400)
# My serializer:
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ("x", "y")
还有我的 JS 前端:
const postBody = new FormData();
postBody.append('x', 'someValue');
postBody.append('y', 'someValue');
fetch('/api/v1/post', {
method: 'post',
body: postBody,
credentials: 'same-origin',
headers: {
'X-CSRFToken': getCookie('csrftoken'),
'Content-Type': 'multipart/form-data'
}
}
但是,以'Content-Type': 'multipart/form-data' 发送不会在我的后端显示request.data 中的任何值。 以application/json 发送有效,但当其中一个字段是图像时无效。
如何使用form-data 处理文本和图像?
我尝试使用解析器(FormParser 和 MultiPartParser)但没有成功。
【问题讨论】:
-
This 可能有帮助
标签: django django-rest-framework