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

Django中如何获取<input>标签value属性?解决按钮显示ID问题

解决删除按钮显示任务ID的几种方案

下面提供几种既能正确获取任务ID完成删除操作,又能让按钮显示“删除”字样的实用方法:

方法1:添加隐藏输入框

在表单里新增一个隐藏输入框存储任务ID,提交按钮单独设置显示文字:

修改后的HTML代码

<form action="{% url 'todoapp:delete_task' %}" method="post">
    {% csrf_token %}
    <input type="hidden" name="delete" value="{{ task.id }}">
    <input type="submit" value="删除" class="btn btn-primary">
</form>

视图函数无需修改

原代码中request.POST['delete']依然能正确获取到任务ID,按钮则显示“删除”字样。

方法2:将任务ID嵌入URL路径

把任务ID作为URL参数传递,表单无需额外携带ID参数,按钮直接显示文字:

第一步:更新URL配置

在urls.py中修改删除任务的路由,添加pk参数:

path('delete/<int:pk>/', views.delete_task, name='delete_task')

第二步:调整视图函数

从URL参数中直接获取任务ID,不再依赖POST数据:

def delete_task(request, pk):
    if request.method == 'POST':
        task = Task.objects.get(pk=pk)
        task.delete()
        return HttpResponseRedirect(reverse('todoapp:index'))
    else:
        tasks = Task.objects.all()
    return render(request, 'index.html', {'tasks': tasks})

第三步:修改HTML表单

将任务ID写入表单的action属性:

<form action="{% url 'todoapp:delete_task' task.id %}" method="post">
    {% csrf_token %}
    <input type="submit" value="删除" class="btn btn-primary">
</form>

方法3:使用<button>标签替代<input type="submit">

<button>标签可以分离显示内容和提交的value值,既能传递任务ID,又能显示“删除”:

修改后的HTML代码

<form action="{% url 'todoapp:delete_task' %}" method="post">
    {% csrf_token %}
    <button type="submit" name="delete" value="{{ task.id }}" class="btn btn-primary">删除</button>
</form>

视图函数无需修改

request.POST['delete']依然能正常获取任务ID,按钮显示“删除”字样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:37:13