通过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数据的主要内容,如果未能解决你的问题,请参考以下文章
079:Django数据库QuerySet API详解-filterexcludeannotate