2012-05-08 64 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