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
相关产品推荐
相关产品推荐

