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

Django使用DeleteView删除帖子后如何重定向回所属讨论页面

Django DeleteView 删除帖子后重定向到所属讨论页解决方案

删除视图中原有写死的success_url = '/'配置,重写get_success_url方法实现动态生成重定向地址即可,具体操作如下:

  1. 首先在视图文件头部导入路由反转方法:
from django.urls import reverse
  1. 修改DeletePost视图代码:
class DeletePost(DeleteView):
    model = Post

    def get_queryset(self):
        queryset = super().get_queryset()
        # 注意:原代码过滤字段存在笔误,已修正为post_author_id
        return queryset.filter(post_author_id=self.request.user.id)
    
    def get_success_url(self):
        # 从待删除的帖子对象中获取关联的讨论主键,生成对应讨论页路由
        return reverse('view_discussion', kwargs={'pk': self.object.discussion.pk})

可选实现方式

你也可以直接从删除路由的参数中获取讨论ID,无需查询帖子关联字段,性能更优:

def get_success_url(self):
    # 路由中<int:id>对应的就是讨论主键
    return reverse('view_discussion', kwargs={'pk': self.kwargs['id']})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:51:03