2017-03-06 2 views
0

Ich habe eine Ajax-Anfrage QueryDB aufrufen und versuchen, die Daten abzufragen. Django nicht auf Referenzwert nach der Rückkehr serialisieren Modellobjekt für Ajax-Anfrage

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 Modell:

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() 

Meine AJAX-Funktion:

$(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); 
     } 
     }); 
    }); 
    }); 

Der Alarm Popup-Wert "undefiniert" Aber wenn ich es zu alert(data.length); ändern 5 zurückzukehren, welche die richtige ist Nummer. Ich frage mich nur, wie kann ich in meinem Fall die richtige json Rückkehr bekommen?

Antwort

0

Sie haben die richtigen Daten bereits.

data[0] ist ein Objekt. In JavaScript haben Objekte kein .length Attribut.

+0

Ich kann nicht wirklich auf die Daten verweisen. Ich gebe Daten aus [0] [0] es gibt mir "undefined" zurück. – pwan

+0

Da es sich um ein Objekt handelt, haben Objekte Schlüssel und keine Indizes. Sie sollten versuchen, 'data [0]' auszugeben, um zu sehen, welche Schlüssel es hat: 'data [0] .fields' würde wahrscheinlich funktionieren. –

+0

ich dachte, es ist schon im json format? Und referenziert Javascript Objekt mit "."? – pwan

Verwandte Themen