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

Django通过Web表单上传文件提示视频字段必填但已上传如何解决

问题根因

你在视图中实例化POST请求的表单时,仅传入了request.POST参数,没有传入文件数据载体request.FILES。Django中所有通过表单上传的文件都会被存储在request.FILES对象中,处理包含文件字段的表单时,必须同时传入request.POST和request.FILES两个参数,表单才能正确读取到上传的文件内容,因此即使你前端传了视频,后端表单也识别不到文件,就会抛出必填项校验错误。

修复方案

仅需要修改视图中表单实例化的代码即可:
将原有代码

form = CreateCourseForm(request.POST)

修改为

form = CreateCourseForm(request.POST, request.FILES)

修改完成后的完整视图代码如下:

def create_course(request):
    form = CreateCourseForm()

    if request.method == 'POST':
        form = CreateCourseForm(request.POST, request.FILES)
        if form.is_valid():
            new_course = form.save(commit=False)
            new_course.instructor = request.user
            new_course.save()
            return redirect('home')
    return render(request, 'courses/create.html',{'form':form})
补充注意事项
  • 你已经在前端form标签添加了enctype="multipart/form-data"属性,该项配置正确无需修改
  • 如果你后续需要将视频字段设置为非必填项,可在Course模型的video字段中添加blank=True参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:39:04