在为ajax请求返回serializered模型对象后,Django无法引用值

时间:2017-03-06 08:55:28

标签: django

我有一个ajax请求调用QueryDB并尝试查询数据。

def QueryDB(request):

        _exp = request.GET['exp']
        _alg = request.GET['alg']
        _orderby = request.GET['orderby']
        _type = request.GET['type']
        _nOutput = request.GET['nOutput']
        if(_type == 'fp'):
            evs = ev_detection.objects.filter(alg=_alg, exp = _exp)
            order_evs = evs.order_by('score');
        #order_evs = order_evs[0:int(_nOutput)]
        data = serializers.serialize('json', order_evs)
        return HttpResponse(data, content_type = "application/json")

ev_detection模型:

 class ev_detection(models.Model):

        imageset = models.CharField(max_length=20,default='')
        exp = models.CharField(max_length=20,default='')
        alg = models.CharField(max_length=20)   
        nFrame = models.FloatField()
        xAxis = models.FloatField()
        yAxis = models.FloatField()
        width = models.FloatField()
        height = models.FloatField()
        score = models.FloatField()
        match = models.IntegerField()

我的AJAX功能:

$(document).ready(function(){
    $('#fpquery').on("click", function(){
      $.ajax({
        type:'GET',
        url: '/results/QueryDB',
        data: {
          'exp':'Reasonable',
          'alg':'FT22-OI',
          'type':'fp',
          'orderby': 'score',
          'nOutput': 5     
        },
        dataType: 'json',
        success: function (data) {
          alert(data[0].length);
        }
      });
   });
  });

警告弹出值"未定义" 但当我将其更改为alert(data.length);时,它返回5,这是正确的数字。我只是想知道如何在我的情况下获得正确的json返回?

1 个答案:

答案 0 :(得分:0)

您已拥有正确的数据。

data[0]是一个对象。在Javascript中,对象不具有.length属性。