Javascript 使用django访问ajax元素

Javascript 使用django访问ajax元素,javascript,jquery,ajax,django,Javascript,Jquery,Ajax,Django,我正在使用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 J

我正在使用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\"}}]"}
我的问题是如何访问标题。

您在这里双重序列化了
“data”
键的值:首先是通过
序列化程序。序列化(…)
构造字符串,然后再次序列化它(构造字符串文字),这使得获取元素变得更加困难

例如,我们可以首先将JSON blob转换回普通Python对象来防止这种情况:

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), })

看起来您“双重序列化”了响应:与其序列化值,不如让JSONing只发生一次。我该如何做它工作了,但是您能告诉我如何访问title@ChamsAgouni当前位置查询集中有两个元素(两个公司)因此有多个
标题
s。例如,我想访问第一个标题undefined TypeError:无法读取未定义的属性'title'error@ChamsAgouni:它为
console.log(数据)显示了什么
$.ajax({
    url: '/browse_jobs',
    data: {
      'keyword': keyword,
    },
    dataType: 'json',
    success: function (data) {
        console.log(data.data[0].fields.title);
    }
});