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

Django自定义表单提交后ImageField图片未保存问题求助

问题原因

处理包含文件上传的表单时,Django的表单实例需要同时接收request.POST和request.FILES两个参数,你当前的代码只传入了request.POST,图片等上传文件都存储在request.FILES中,表单没有读取到这部分数据,因此图片字段不会被赋值,也不会触发文件保存逻辑。

修复方案

修改views.py中addmonster视图的表单实例化代码,补充传入request.FILES参数即可:

from django.shortcuts import render, redirect
from django.http import HttpResponseRedirect
from .models import Underdark_Monsters
from django.contrib import messages
from .forms import UnderdarkForm
    
def addmonster(request):
        submitted = False
        if request.method == "POST":
            # 补充request.FILES参数
            form = UnderdarkForm(request.POST, request.FILES)
            if form.is_valid():
                form.save()
                img_obj = form.instance
                return HttpResponseRedirect('/addmonster?submitted=True', {'form': form, 'img_obj': img_obj})
        else:
            # 原代码这里漏了实例化括号,补充修正
            form = UnderdarkForm()
            if 'submitted' in request.GET:
                submitted = True
        return render(request, 'addmonster.html', {'form': form, 'submitted': submitted})

你已经在表单标签正确添加了enctype="multipart/form-data"属性,其余配置均无问题,修改后即可正常在自定义表单中上传保存图片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 08:54:02