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

Django CreateView保存数据报错:未返回HttpResponse,success_url不生效

问题原因

你重写CreateView的form_valid方法时没有返回HttpResponse对象,导致Django判定视图返回内容无效。
原生form_valid方法完成数据保存逻辑后,会自动跳转至你配置的success_url或模型get_absolute_url对应的地址,你自定义该方法时只保留了数据保存的逻辑,丢失了原生方法的返回逻辑,所以才会触发报错,并不是success_url和get_absolute_url配置不生效。
数据成功入库是因为你手动调用了self.object.save(),这步逻辑在报错前已经执行完成。

解决方案

在你的form_valid方法末尾添加返回语句,调用父类原生的form_valid方法即可:

def form_valid(self, form):
    self.object = form.save(commit=False)
    self.object.user = self.request.user
    self.object.save()
    # 新增下面这行返回逻辑
    return super().form_valid(form)

如果你需要自定义跳转逻辑,也可以手动返回重定向响应:

from django.shortcuts import redirect

def form_valid(self, form):
    self.object = form.save(commit=False)
    self.object.user = self.request.user
    self.object.save()
    return redirect("home")

两种方案都可以正常触发跳转,你配置的success_url和get_absolute_url都可以正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:54:03