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

Django实现数据库关联表格添加按ID删除指定行按钮的需求问询

实现按ID删除指定行数据的步骤

1. 修改index.html表格的按钮位置

把原来的<td>BUTTON HERE</td>替换为如下代码,用POST请求提交删除请求,同时增加删除确认避免误操作:

<td>
    <form method="post" action="{% url 'delete_expense' expense_item.id %}" onsubmit="return confirm('确定要删除这条记录吗?')">
        {% csrf_token %}
        <button type="submit" style="color: red; border: none; background: none; cursor: pointer;">删除</button>
    </form>
</td>

2. 在Views.py中新增删除视图

新增删除逻辑,同时增加权限校验,确保用户只能删除自己的支出记录:

# 先导入需要的模块
from django.shortcuts import get_object_or_404, redirect
from django.contrib import messages

def delete_expense(request, item_id):
    # 仅处理POST请求
    if request.method == "POST":
        # 获取要删除的记录,同时校验属于当前用户,防止越权删除
        expense = get_object_or_404(ExpenseInfo, id=item_id, user_expense=request.user.last_name)
        expense.delete()
        # 可选:添加删除成功提示
        messages.success(request, "记录删除成功")
    # 删除完成跳转回列表页
    return redirect('app')

3. 在项目的urls.py中新增删除路由

在你的app对应的urlpatterns列表中添加如下配置:

path('delete/<int:item_id>/', delete_expense, name='delete_expense'),

注意事项

  • Django默认会给模型自动生成主键id,你不需要额外修改列表页的查询逻辑就能直接调用expense_item.id
  • 如果不需要删除确认,去掉form标签的onsubmit属性即可
  • 建议保留权限校验逻辑,避免用户通过拼接ID删除其他人的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:51:00