javascript - Django jquery 数据表 : Uncaught TypeError: Cannot read property 'length' of undefined

标签 javascript jquery python django

我正在尝试将数据从 django 1.8.1 中的服务器加载到 jquery 数据表。在该过程结束时,我收到“未捕获的类型错误:无法读取未定义的属性‘长度’”javascript 错误。

查看;

datas = Datas.objects.all()
jsonData = serializers.serialize('json', datas)
return HttpResponse(jsonData, content_type='application/json')

在浏览器的“Network”中可以看到它返回这样的json数组;

[{"fields": {"objectname": "O1"}, "model": "my_app.datas", "pk": 1}]

HTML;

<table class="table table-striped table-bordered table-hover" id="id_dataTable" style="cursor: pointer;">
</table>

JS;

  $('#id_dataTable').dataTable({
        "sAjaxSource": '/getData/',
        "aoColumns": [
            {'mData': 'fields.objectname'}
        ],
        "aoColumnDefs": [
            {
                "aTargets": [0],
                "sTitle": "Object",
                "sClass": "align-center"
            }
        ],
        "bProcessing": true,
        "bServerSide": true,
        "bPaginate": false
    });

你能帮忙吗?谢谢

最佳答案

检查 jQuery DataTables 的文档: https://www.datatables.net/examples/ajax/objects.html

您需要提供以下格式的数据:

[
    {
    "name":    "Tiger Nixon",
    "position":   "System Architect",
    "salary":    "$3,120",
    "start_date": "2011/04/25",
    "office":    "Edinburgh",
    "extn":    "5421"
    },
    {...}
]

您可以迭代 View 中的数据来构建对象,将它们附加到数组中,然后通过 JsonResponse 发送响应:

from django.http import JsonResponse

datas = Datas.objects.all()
arr = []
for data in datas:
    arr.append({
        'key1': data.key1,
        'key1': data.key1,
    })
return JsonResponse(arr, safe=True)

关于javascript - Django jquery 数据表 : Uncaught TypeError: Cannot read property 'length' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30237637/

相关文章:

javascript - jquery DOM 函数返回未定义但 javascript 版本有效

python - 如何使用 python 调用 c++ 函数

python - 推特 Bootstrap href 按钮不起作用

Python:基于绝对XPath解析HTML元素

javascript - 使用输入类型=按钮通过 jQuery 实现“Ctrl+B”功能

javascript - 当服务发出更改时,组件模板变量不会更新( Angular )

javascript - 使用 jquery 更改某些 html 的位置以隐藏某些 html

javascript - 开发者工具中的调试始终进入 jquery 文件

javascript - Chrome 扩展 : How do you gray out icon depending on the url?

javascript - JQuery 事件绑定(bind)被覆盖