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

Django中编辑功能异常:点击编辑按钮跳转首页但未保存修改

Django编辑功能无法保存内容的修复方案

问题核心原因

你的views.py存在两个关键错误,导致修改内容无法保存:

  • 错误使用request.FILES获取文本输入字段description——文本表单数据应从request.POST中读取;
  • 获取新描述后,未将其赋值给photo对象的对应属性就直接保存,相当于没有做任何修改。

修复后的views.py代码

def editPhoto(request, pk):
    photo = Photo.objects.get(id=pk)
    categories = Category.objects.all()

    if request.method == 'POST':   
        # 从POST请求中获取修改后的描述内容
        new_description = request.POST.get('description')
        # 将新描述赋值给photo对象
        photo.description = new_description
        # 保存修改到数据库
        photo.save()
        return redirect('/')

    context = {'categories': categories, 'photo': photo}
    return render(request, 'photos/edit.html', context)

额外优化建议

  • 当前表单设置了enctype="multipart/form-data",但未处理图片修改逻辑,若不需要支持图片编辑,可移除该属性;若后续要添加图片更新功能,需在POST分支中补充photo.image = request.FILES.get('image')的逻辑(注意先判断是否有文件上传)。
  • 建议使用Django反向解析URL(如redirect('gallery'))代替硬编码的redirect('/'),更符合框架最佳实践。
  • 可添加Photo.DoesNotExist异常捕获,避免因无效pk导致页面报错。

验证步骤

  1. 替换修复后的views.py代码;
  2. 重启Django开发服务器;
  3. 进入编辑页面修改描述,点击更新按钮确认内容是否成功保存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:10:20