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

Django REST Framework Datatables报FieldError:无法解析关键字'0'

错误原因及修复方案

错误核心分析

从请求参数和错误栈可以看出,后端尝试解析关键字'0'作为模型字段,但你的AuthUser模型并没有这个字段。问题根源来自前端Datatables配置与后端DRF-Datatables的不匹配,具体原因如下:

  1. Datatables默认传递列索引而非字段名
    你前端的Datatables初始化时没有显式配置columns.data,导致Datatables默认将列索引(0、1、2...)作为data参数传给后端。DRF-Datatables收到这些索引值后,会错误地将其当作模型字段名用于排序操作,从而抛出Cannot resolve keyword '0' into field的错误。

  2. 前端模板与后端接口不匹配

    • 你的表格表头是产品相关的(Item Code、Customer Barcode等),但请求的却是用户接口user_viewset,完全不对应。
    • 前端AJAX请求的URL写的是../api/product_viewset/?format=datatables,但后端注册的是user_viewset,接口路径不匹配。
  3. 后端视图未配置DRF-Datatables过滤器
    你的UsersViewSet没有添加DRF-Datatables专用的过滤器后端,导致无法正确处理Datatables的请求参数。


具体修复步骤

1. 修正前端Datatables配置

更新模板中的表格表头和Datatables初始化代码,使其与用户接口的字段对应:

<div class="table-responsive-xl">
    <table class="table table-hover table-striped table-sm" id="table1">
        <thead class="sticky-top top-0">
            <tr>
                <th>First Name</th>
                <th>Last Name</th>
                <th>Email</th>
            </tr>
        </thead>
    </table>
</div>

<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="//cdn.datatables.net/2.0.8/js/dataTables.min.js"></script>
<script>
    $(document).ready(function () {
        $('#table1').DataTable({
            "serverSide": true,
            "ajax": "../api/user_viewset/?format=datatables",
            "columns": [
                {"data": "first_name"},
                {"data": "last_name"},
                {"data": "email"}
            ]
        });
    });
</script>

2. 配置后端视图的过滤器

在views.py中添加DRF-Datatables的过滤器后端:

from rest_framework_datatables.filters import DatatablesFilterBackend

class UsersViewSet(viewsets.ModelViewSet):
    queryset = models.AuthUser.objects.all().order_by("last_name")
    serializer_class = serializers.UsersSerializer
    filter_backends = (DatatablesFilterBackend,)

3. 确保接口路径一致

确认前端AJAX的URL与后端urls.py中注册的user_viewset路径匹配,避免请求错误的接口。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:34:50