2011-09-23 36 views
-1

我回來的1一個QuerySet jQuery和我的JQuery看起來像這樣解析Django的查詢集使用AJAX

<script> 
    $(document).ready(function(){ 

    $("#search_form").submit(function(event) 
    { 
     event.preventDefault(); 

     $.ajax({ 
      type: "POST", 
      url: "object/search/", 
      processData: false, 
      dataType: "json", 
      success: function(data){ 
       $.each(data, function(key, value){ 
        alert(key + ': ' + value); 
        }); 
       } 
      }); 
    });}); 
</script> 

警報會出現,但都返回0:[對象的對象。我想顯示正在返回的對象模型的名稱屬性。就像使用object.name一樣。我真的陷入了困境,你對解決這個問題的幫助表示讚賞。

的代碼,我的看法是:

if request.is_ajax(): 
    if request.method == 'POST': 
     format = 'json' 
     mimetype = 'application/json' 
     o = Object.objects.filter(name__icontains="bin") 
     data = serializers.serialize(format, o) 
     return HttpResponse(data, mimetype)  

我只返回1個對象與此查詢,但它的類型是查詢集的。

編輯。這是返回時的數據。

>>> o 
[<Object: Bin Ber>] 
>>> data = serializers.serialize(format, o) 
>>> data 
'[{"pk": 1, "model": "objects.object", "fields": {"name": "Bin Ber", "roof": 3,            "depth": [3], "user": 1, "created_when": "2011-08-16 03:11:36", "shared": false,               "projects": [1], "description": null}}]' 
+0

嘗試查看'數據'槽'console.log(數據);'。在那裏你應該能夠看到,你必須訪問存儲在'value'中的對象。可能value.name – GNi33

+0

張貼您的django代碼 –

+0

沒有看到你創建數據的視圖你很難知道這裏發生了什麼 – MattoTodd

回答

2

根據您的編輯:

$.each(data, function(key, value){ 
     alert(key + ': ' + value.fields.name); 
    }); 
} 
+0

是的,返回undefined –

+0

我更新我的答案 – MattoTodd

+0

你能鏈接我一個參考製作我自己的序列化程序嗎?另外,除非是查詢集,否則serializers.serialize行將不起作用。 –

-1

看到返回的數據只是使用JavaScript函數JSON.stringfy(數據); 應該顯示的數據,而不是[對象對象]