You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS发送带图片FormData到Django出现MultiPartParserError报错求助

问题原因

你遇到的django.http.multipartparser.MultiPartParserError: Invalid boundary in multipart: None错误核心原因是前端fetch请求里手动设置了multipart/form-data类型的Content-Type,但没有附带对应的boundary分隔符参数。
当你使用fetch传递FormData对象时,浏览器会自动识别并添加带正确boundary的Content-Type请求头,手动覆盖这个头会导致boundary丢失,Django的MultipartParser无法拆分表单字段和文件数据。

修复步骤

1. 前端提交代码修改

删除fetch配置中headers里的"Content-Type": "multipart/form-data"字段,修改后的handleSubmit代码如下:

function handleSubmit(e) {
  e.preventDefault();

  let data = new FormData();
  data.append("userID", loggedInID);
  data.append("email", email);
  data.append("description", description);
  data.append("image", imageLink);

  fetch("http://127.0.0.1:8000/user/edit_profile/", {
    method: "POST",
    headers: {
      // 移除手动设置的Content-Type,让浏览器自动生成
      "X-CSRFToken": csrfToken,
    },
    credentials: "include",
    body: data,
  }).then((response) => response.json()); // 建议加上json()处理返回结果
}

2. 后端Django代码适配

注意parser_classes是Django REST Framework(DRF)的专属配置,仅对DRF的API视图生效,如果你使用的是DRF,需要给视图加上@api_view装饰器才能正确解析数据,修改后的视图代码参考:

from rest_framework.decorators import api_view, parser_classes
from rest_framework.parsers import FormParser, MultiPartParser
from django.http import JsonResponse

@api_view(['POST'])
@parser_classes([FormParser, MultiPartParser])
def editProfileView(request):
    # 普通字段从request.data取
    user_id = request.data.get('userID')
    email = request.data.get('email')
    description = request.data.get('description')
    # 图片文件从request.FILES取(也可以直接从request.data取,DRF会统一处理)
    image = request.FILES.get('image')
    # 测试打印
    print("普通字段:", user_id, email, description)
    print("上传的文件:", image)
    return JsonResponse({"code": 0, "msg": "提交成功"})

如果你没有使用DRF,就是原生Django视图,不需要加parser_classes,直接从request.POST取普通字段,request.FILES取文件即可。

验证方法

修改完成后打开浏览器开发者工具的「网络」面板,查看提交请求的请求头,确认Content-Type值为multipart/form-data; boundary=----WebKitFormBoundaryXXX格式,后端即可正常解析FormData数据。

内容的提问来源于stack exchange,提问作者ernest30

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:39:01