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

Django提交表单时如何获取表格每行select字段的全部选中值?

你有两处核心配置错误,修正后即可实现获取所有下拉选中值的需求:

错误原因

  • 表单提交的字段取值对应<select>标签的name属性,<option>标签的name不会被表单识别提交,你后端取值的键名完全错误
  • 多个同名称的表单字段提交时,需要在name属性值末尾加[]标识,否则浏览器默认只会提交最后一个同名字段的值
  • Django的request.POST.get()方法只能获取单个值,要获取同键名的多个值需要使用getlist()方法

修正后的代码

模板代码

<form method="POST">
    {% csrf_token %}

    <table name="table-example">
        <thead>
            ...
        </thead>
        <tbody>
            {% for item in list_example %}
                <tr>
                    <td>...</td>
                    <td>...</td>
                    <td>
                        <!-- 给select的name加[]标识 -->
                        <select name="select-example[]">
                            {% for item in list_selections %}
                                <option value="{{ item }}">{{ item }}</option>
                            {% endfor %}
                        </select>
                    </td>
                </tr>
            {% endfor %}
        </tbody>
    </table>

    <button type="submit">Update</button>
</form>

后端取值代码

if request.method == "POST":
    # 用getlist取同键名的所有值,键名用select的name
    data = request.POST.getlist('select-example[]', None)

改完之后data就是所有下拉选中值组成的列表,顺序和表格行的顺序完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 09:45:09