请问django中怎么把表格中的数据从前端传递到后端

如题,这是html界面,我想把这个表格中的数据给传递到后端进行处理

<form method="post" action="/sr/bi" name="table">
            {% csrf_token %}
            <table class="table table-bordered" id="zzz">
            <thead>
            <tr>
                <th>R400th>
                <th>R401th>
                <th>R402th>
            tr>
            thead>
            <tbody id="tb">
            {% for item in obj %}
            <tr>
                <td>{{ item.r400 }}td>
                <td>{{ item.r401 }}td>
                <td>{{ item.r402 }}td>
            tr>
            {% endfor %}
            tbody>
            table>
            <button type="submit" class="btn btn-primary" style="margin-left:15%;">提 交button>
        form>

这是后端代码,我想接收到数据后先打印一下,结果得到的是 [ ] 空列表

def sb(request):
    hhh = request.POST.getlist('table')
    print(hhh)
    return HttpResponse('???')

请问应该怎么办

你可以在前端代码中为每个表格单元格添加一个name属性,来标识它们的名称,然后在后端代码中使用request.POST.get()或request.POST.getlist()来获取表格数据。
例如,如果你想要从前端传递的表格中获取r400的值,你可以在前端代码中为r400单元格添加一个name属性,例如:

<td name="r400">{{ item.r400 }}</td>


然后在后端代码中,你可以使用request.POST.get()方法来获取表格中的r400值:

r400 = request.POST.get('r400')
print(r400)

如果你想要获取表格中所有的值,你可以在前端代码中为每个单元格添加一个name属性,例如:

<td name="r400">{{ item.r400 }}</td>
<td name="r401">{{ item.r401 }}</td>
<td name="r402">{{ item.r402 }}</td>


然后在后端代码中,你可以使用request.POST.getlist()方法来获取表格中的所有值:

r400 = request.POST.getlist('r400')
r401 = request.POST.getlist('r401')
r402 = request.POST.getlist('r402')
print(r400, r401, r402)

请注意,由于request.POST.getlist()方法返回的是一个列表,因此你需要在后续处理中对这些值进行遍历,才能获取它们的具体值。

希望这些信息能帮助你解决问题。

标签要加上name属性吧,form表单提交是将name属性对应的值提交。可以F12看看发送的网络请求中是否有传递参数。

输入控件有name才会提交到服务器,普通的dom控件是不会提交的。表单放一个hidden输入控件,js遍历表格得到tr对应的json对象数组,序列化为字符串赋值hidden,然后获取提交的值用json.loads反序列化为对象数组后进行相关操作

<form method="post" action="/sr/bi" name="table">
    {% csrf_token %}
    <table class="table table-bordered" id="zzz">
        <thead>
            <tr>
                <th>R400</th>
                <th>R401</th>
                <th>R402</th>
            </tr>
        </thead>
        <tbody id="tb">
            {% for item in obj %}
            <tr>
                <td>{{ item.r400 }}</td>
                <td>{{ item.r401 }}</td>
                <td>{{ item.r402 }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
    <input type="hidden" name="jsondata" id="jsondata" />
    <button type="submit" class="btn btn-primary" style="margin-left:15%;" onclick=" setData()">提 交</button>
</form>
<script>
    function setData() {
        let tb = document.getElementById('tb');

        var rows = Array.from(tb.rows).map(i => ({ R400: i.cells[0].innerHTML, R401: i.cells[1].innerHTML, R402: i.cells[2].innerHTML }));
        document.getElementById('jsondata').value = JSON.stringify(rows);
    }
</script>


python

import json

def sb(request):
    hhh = request.POST.get('jsondata','[]')###
    hhh=json.loads(hhh)
    print(hhh)
    return HttpResponse('???')
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632