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

Django中reverse_lazy跳转异常:添加后缀无法正确跳转至详情页

问题解决方法

你的问题出在AddCommentView的success_url配置错误,导致无法正确生成详情页的跳转地址。

错误原因

原代码中success_url = reverse_lazy("app:list_detail", kwargs={'slug': List.slug})里的List.slug是模型的字段类,不是当前请求中具体的slug值,Django无法据此生成正确的URL,因此默认重定向到当前评论提交页面的URL(即/comment/结尾的路径)。

修复方案

移除类属性success_url,重写get_success_url方法,在方法中获取当前请求的slug参数,反向生成详情页URL:

class AddCommentView(CreateView):
    model = Comment
    form_class = CommentForm
    template_name = 'app/add_comment.html'

    def form_valid(self, form):
        list_obj = List.objects.get(slug=self.kwargs['slug'])
        form.instance.list = list_obj
        return super().form_valid(form)

    # 重写get_success_url方法,动态生成跳转地址
    def get_success_url(self):
        return reverse_lazy("app:list_detail", kwargs={'slug': self.kwargs['slug']})

这样提交评论后,就会正确跳转到对应的列表详情页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:21