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
相关产品推荐
相关产品推荐

