我正在使用ajax来获取Django模型并获取结果
views.py
def browse_jobs(request):
keyword = request.GET.get('keyword', None)
company = Company.objects.filter(title__icontains=keyword)
data = serializers.serialize("json", company, fields=('title'))
return JsonResponse({'data':data,})
ajax请求
$.ajax({
url: '/browse_jobs',
data: {
'keyword': keyword,
},
dataType: 'json',
success: function (data) {
if (data) {
console.log(data.title);
}
}
});
我正在从django收到此回复
{"data": "[{\"model\": \"app.company\", \"pk\": 1, \"fields\": {\"title\": \"Facebook\"}}, {\"model\": \"app.company\", \"pk\": 2, \"fields\": {\"title\": \"Fabook\"}}]"}
我的问题是我如何获取标题。
答案 0 :(得分:1)
您在这里 double 序列化了execute dbms_mview.refresh(
list => 'your_partitioned_mview'
, method => 'P' -- this is where PCT is specified
, atomic_refresh => false
);
键的值:首先是通过"data"
构造了一个字符串,然后您再次对其进行了序列化(构造了字符串文字) ,使得获取元素变得更加困难。
例如,可以通过首先将JSON blob改回 vanilla Python对象来防止这种情况发生:
serializers.serialize(..)
然后AJAX调用将收到一个JSON blob,其中from json import loads as json_loads
def browse_jobs(request):
keyword = request.GET.get('keyword', None)
company = Company.objects.filter(title__icontains=keyword)
data = serializers.serialize("json", company, fields=('title'))
return JsonResponse({'data': json_loads(data), })
不会 映射到字符串,而是映射到一个子词典列表,从而更易于访问。
这里有两个查询结果,您可以使用以下命令打印 first "data"
:
title