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

Django提交多输入表单仅存最后一条数据 无法批量入库如何解决

问题原因

  • 前端动态生成的所有商品输入框都使用了相同的name属性值a,表单提交时同name的参数会被覆盖,最终后端只能接收到最后一个输入框的取值
  • 后端使用request.POST.get("a")只能获取单个参数值,即使前端传递了多个同name参数,该方法也只会返回最后一个值

修复方案

1. 修改前端JS代码

把动态生成的input的name属性改为数组格式a[],让浏览器提交表单时把所有同名参数以数组形式传递:

// 将原来的行
item.setAttribute("name", "a");
// 替换为
item.setAttribute("name", "a[]");

2. 修改后端视图逻辑

使用Django提供的getlist方法获取所有提交的商品ID,循环写入数据库:

def transfer(request):
    if request.method == "POST":
        # 获取所有提交的商品ID列表
        item_ids = request.POST.getlist("a[]")
        # 批量创建数据存入数据库
        for item_id in item_ids:
            TransferedItems.objects.create(item_id=item_id)
        return HttpResponse("sent")
    else:
        return HttpResponse("form submission failed")

可选优化:可在循环创建数据时增加存在性校验,避免同一个商品被重复写入目标表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:27:00