通过ajax获取django的queryset数据

Posted

技术标签:

【中文标题】通过ajax获取django的queryset数据【英文标题】:Get queryset data of django by ajax 【发布时间】:2018-06-04 10:51:44 【问题描述】:

我正在尝试从 django 视图发送 json 响应。 使用下面的代码。

msg_obj=Message.objects.all()
msg_list=list(msg_obj.values())
print(msg_list)
return JsonResponse(msg_list,safe=False)

然后在 ajax 成功时,我会这样做:-

success: function (data) 
        alert(data['id'])
                    $('#msg-list').append("<p> he" + data['id'] + "</p>");

        

如果我在 django 中打印 msg_list 它会给我这样的结果:

['id': 1, 'username_id': 2, 'fusername_id': 3, 'text': 'hello friends','id': 1, 'username_id': 2, 'fusername_id': 3, 'text': 'hello friends']

我尝试了许多组合,但无法在客户端获取或打印数据(成功功能上的 ajax)。

编辑:每次我尝试访问 ajax 中的数据时,我都会收到未定义的警报!

提前感谢您的帮助。

【问题讨论】:

你还没有说出了什么问题。成功函数中实际发生了什么?警报显示什么? 它只给了我未定义的 html console.log(data) 给你什么?试试data[0].id 是的,它有效,但我如何在这个列表中使用循环 【参考方案1】:

您在 Ajax 响应中发送项目列表,因此在成功函数中 data 是一个对象数组。你需要循环遍历:

$.each(data, function(index, item) 
    $('#msg-list').append("<p> he" + item['id'] + "</p>");
);

【讨论】:

如何将回调值发送到另一个(不同的)页面,而不显示在调用页面上?

以上是关于通过ajax获取django的queryset数据的主要内容,如果未能解决你的问题,请参考以下文章

Django开发博客系统(05-QuerySet的使用)

079:Django数据库QuerySet API详解-filterexcludeannotate

如何从 Django QuerySet 中获取绝对图像 URL 列表?

Django中的数据库查询

Django中Ajax处理

对queryset的理解