2012-05-08 138 views
0

我有這個下面的視圖,我從模型中獲取數據,然後將其序列化爲JSON。如何捕獲並查看JSON響應?

views.py

def polling(request): 
    if request.is_ajax(): 
     data = UserReview.objects.filter(movie_id=request.GET['m_id']) 
     serializers.serialize('json', data) 
     return HttpResponse(data, mimetype='application/json') 
    else: 
     raise Http404 

在客戶端我想現在顯示此內容。我使用jQuery的功能getJSON來歸檔這個。它不會顯示任何內容,setTimeout也不起作用。但是,當我使用螢火蟲進行調試時,我收到了一個響應,但它不會調用alert()函數來查看數據。我一直在努力弄清楚現在有什麼問題可能。所以我想知道我的腳本是否有問題?

的JavaScript

function polling() { 
    $.getJSON( "/polling/", 
       {m_id: {{movie_info.id}} }, 
       function(data) { 
        alert(data) 
        setTimeout(polling, 5000) 
       }); 
    }; 
+1

哇,在整個網站上的1050萬個問題.... – Blazemonger

+0

@blazemonger每次迭代更好回答否? :P – starcorn

+2

@Blazemonger它實際上是後(問題+答案),例如[10000000](http://stackoverflow.com/questions/9999064/ember-js-select-view-template-by-model-type-object-值/千萬#10000000)。但仍然令人驚訝〜 – okm

回答

1

一些通用的方法,可以幫助你找出什麼是錯的。

按計劃
  1. 使用console.log非常寬鬆的前端,以確保一切是怎麼回事

  2. http://api.jquery.com/jQuery.ajax/回調函數作爲一個評論所說,確保你至少LOGG錯誤

  3. https://docs.djangoproject.com/en/dev/topics/logging/設置一個調試記錄,請確保您可以看到是怎麼回事,什麼Django是實際上返回的JSON 。

  4. http://docs.python.org/library/pdb.html更好的是,在代碼中的任何位置放置這個badboy,並確保一切都是正確的。如果你的成功沒有被稱爲前端,我敢打賭,錯誤是在Django!找出在哪裏。

  5. 您可以在螢火蟲的HTML選項卡中查看錯誤,如果debug=True或您可以通過瀏覽器請求/polling/並查看django錯誤屏幕。

使用部分或任何這些應該把你在一個很好的地方來解決問題的Django開發服務器使得它絕對輕鬆通過這些錯誤清風請做一些研究,並找出取得了許多許多的調試工具提供給你!

1

我是新來的這一切,但是你試過用。

$就 ({

 url: "/Build/AllStatuses", 
     dataType: 'json', 
     success: function (buildstatuses) 

這是我用來調用我的JSON和它似乎工作。

+0

是的,我也試過。它仍然不會將模型的輸出顯示爲JSON。無論如何,它會呈現一個簡單的httpresponse。所以我有點覺得這個錯誤可能是我將模型序列化成JSON的時候。但我不確定。 – starcorn