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

Django新手开发博客应用时删除文章功能异常无法运行求解决方案

问题原因及修复方案

1. 路由配置缺失pk参数

你的urls.py中delete_post路由没有配置接收文章id的参数,导致视图无法从请求中获取到要删除的文章pk,直接访问会抛出404或参数缺失错误。
修改urls.py中对应路由:

# 把原来的delete_post路由替换为以下内容
path('delete_post/<int:pk>', views.delete_post, name='delete_post')

2. 删除按钮逻辑错误

你当前用a标签包裹按钮的写法,触发的是GET请求,不会提交删除表单,且a标签的href是硬编码的固定路径,没有携带文章id参数,完全匹配不上你写的删除逻辑。
两种修复方案选其一即可:

方案A:无需确认页,点击按钮直接删除

直接把提交按钮做成你需要的样式,替换掉原来的a标签按钮和旧的表单代码即可:

<form action="{% url 'delete_post' post.id %}" method="post" style="display: inline;">
    {% csrf_token %}
    <button type="submit" class="btn btn-danger" style="position:relative; right: -1145px;">删除文章</button>
</form>
方案B:保留删除确认页

如果你需要用户点击按钮后先跳转到确认页,再点击确认才删除,只需要修改原来的a标签href属性:

<!-- 把原来的a标签href改为动态生成的带id的路径 -->
<a href="{% url 'delete_post' post.id %}"><button type="button" class="btn btn-danger" style="position:relative; right: -1145px;">删除</button></a>

点击这个按钮会先跳转到你写的delete-post.html确认页,再点击确认页里的提交按钮就会执行删除逻辑,跳转首页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:15:02