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

Django中UpdateView未跳转到类视图定义的success_url问题求助

解决Django UpdateView提交后跳转异常的问题

兄弟,看你给出的代码片段,我一眼就注意到get_success_url里的参数写法有问题!这大概率就是跳转异常的根源,咱们一步步排查:

最可能的问题:reverse_lazy参数拼写错误

你代码里写的kwarg...应该是kwargs(少了个s),正确的写法得是这样:

def get_success_url(self):
    return reverse_lazy('project_detail', kwargs={'pk': self.object.pk})

要是参数名写错,reverse_lazy找不到对应的URL参数,要么直接报错,要么就会跳转到默认的地址(比如列表页或者返回上一页),完全不是你预期的详情页。

其他排查点:

  • URL名称必须完全匹配:确认project.urls.py里的name='project_detail'和reverse_lazy里的名称一模一样,大小写、拼写都不能错,Django对这个可是认死理的。
  • 确认self.object的主键正确:UpdateView里的self.object是更新后的实例,要确保它的pk存在。如果你的Project模型主键不是pk(比如自定义了id字段),记得改成对应的字段名,比如self.object.id。
  • 别在form_valid里搞砸跳转逻辑:如果你重写了form_valid方法,一定要调用父类的方法,比如:
    def form_valid(self, form):
        # 这里写你的自定义逻辑,比如保存额外字段
        self.object = form.save()
        # 必须加这句,不然默认的跳转逻辑会失效
        return super().form_valid(form)
    
  • 检查路由冲突:看看你的urlpatterns里有没有其他路由抢在project_update前面匹配了edit/<int:pk>的格式,导致请求被错误路由,间接影响了跳转。

先把get_success_url的代码补全,修正kwargs的拼写错误,测试一下应该就能解决问题了!

内容的提问来源于stack exchange,提问作者Reinier Hernández

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:29:17